Fix, some more tests. Need to figure out the prim comb things

This commit is contained in:
Nathan Braswell
2021-11-23 22:49:54 -05:00
parent 60cd7b1ffa
commit f3525def87

View File

@@ -255,9 +255,9 @@
; TODO: make this check for stop envs using de Bruijn indicies
(contains_symbols (rec-lambda recurse (stop_envs symbols x) (cond
((val? x) false)
((marked_symbol? x) (let ((r (in_array (.marked_symbol_value x) symbols))
(_ (if r (println "!!! contains symbols found " x " in symbols " symbols))))
r))
((marked_symbol? x) (let* ((r (in_array (.marked_symbol_value x) symbols))
(_ (if r (println "!!! contains symbols found " x " in symbols " symbols))))
r))
((marked_array? x) (foldl (lambda (a x) (or a (recurse stop_envs symbols x))) false (.marked_array_values x)))
((comb? x) (dlet (((wrap_level de? se variadic params body) (.comb x)))
(or (recurse stop_envs symbols se) (recurse stop_envs (filter (lambda (y) (not (or (= de? y) (in_array y params)))) symbols) body))))
@@ -612,7 +612,7 @@
(test-all (lambda () (let* (
(run_test (lambda (s) (print "result of test \"" s "\" => " (str_strip (partial_eval (read-string s))))))
(run_test (lambda (s) (begin (print "\n\ngoing to partial eval " s) (print "result of test \"" s "\" => " (str_strip (partial_eval (read-string s)))))))
) (begin
(print (val? '(val)))
(print "take 3" (take '(1 2 3 4 5 6 7 8 9 10) 3))
@@ -651,6 +651,21 @@
(print (run_test "(println 1)"))
(print (run_test "((vau (x) (+ x 1)) 2)"))
(print (run_test "(+ 1 2)"))
(print (run_test "(vau (y) (+ 1 2))"))
(print (run_test "((vau (y) (+ 1 2)) 4)"))
(print (run_test "((vau (y) y) 4)"))
(print (run_test "((vau (y) (+ 13 2 y)) 4)"))
(print (run_test "((wrap (vau (y) (+ 13 2 y))) (+ 3 4))"))
(print (run_test "(vau de (y) (+ (eval y de) (+ 1 2)))"))
(print (run_test "((vau de (y) ((vau dde (z) (+ 1 (eval z dde))) y)) 17)"))
(print (run_test "(cond false 1 false 2 (+ 1 2) 3 true 1337)"))
(print (run_test "(vau de (x) (cond false 1 false 2 x 3 true 42))"))
(print (run_test "(vau de (x) (cond false 1 false 2 3 x true 42))"))
))))
) (test-all))