haskell: Phase 10 — math builtins (sqrt/floor/ceiling/round/truncate) (+6 tests, 28/28)
Some checks failed
Test, Build, and Deploy / test-build-deploy (push) Failing after 1m15s
Some checks failed
Test, Build, and Deploy / test-build-deploy (push) Failing after 1m15s
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -789,6 +789,26 @@
|
||||
(dict-set! hk-vfs (hk-force path) (hk-force contents))
|
||||
(list "IO" (list "Tuple"))))
|
||||
2))
|
||||
(dict-set! env "sqrt" (hk-mk-builtin "sqrt" (fn (x) (sqrt x)) 1))
|
||||
(dict-set!
|
||||
env
|
||||
"floor"
|
||||
(hk-mk-builtin "floor" (fn (x) (floor x)) 1))
|
||||
(dict-set!
|
||||
env
|
||||
"ceiling"
|
||||
(hk-mk-builtin
|
||||
"ceiling"
|
||||
(fn (x) (let ((f (floor x))) (if (= x f) f (+ f 1))))
|
||||
1))
|
||||
(dict-set!
|
||||
env
|
||||
"round"
|
||||
(hk-mk-builtin "round" (fn (x) (round x)) 1))
|
||||
(dict-set!
|
||||
env
|
||||
"truncate"
|
||||
(hk-mk-builtin "truncate" (fn (x) (truncate x)) 1))
|
||||
(let
|
||||
((--sx-to-hk-- (fn (lst) (if (empty? lst) (list "[]") (list ":" (first lst) (--sx-to-hk-- (rest lst))))))
|
||||
(--words--
|
||||
|
||||
@@ -138,4 +138,22 @@
|
||||
(hk-deep-force (hk-run "main = show (negate 3.14)"))
|
||||
"-3.14")
|
||||
|
||||
(hk-test "sqrt 16 = 4" (hk-deep-force (hk-run "main = sqrt 16")) 4)
|
||||
|
||||
(hk-test "floor 3.7 = 3" (hk-deep-force (hk-run "main = floor 3.7")) 3)
|
||||
|
||||
(hk-test "ceiling 3.2 = 4" (hk-deep-force (hk-run "main = ceiling 3.2")) 4)
|
||||
|
||||
(hk-test
|
||||
"ceiling on whole = self"
|
||||
(hk-deep-force (hk-run "main = ceiling 4"))
|
||||
4)
|
||||
|
||||
(hk-test "round 2.6 = 3" (hk-deep-force (hk-run "main = round 2.6")) 3)
|
||||
|
||||
(hk-test
|
||||
"truncate -3.7 = -3"
|
||||
(hk-deep-force (hk-run "main = truncate (negate 3.7)"))
|
||||
-3)
|
||||
|
||||
{:fails hk-test-fails :pass hk-test-pass :fail hk-test-fail}
|
||||
|
||||
Reference in New Issue
Block a user