Old Interpreter Tests.
(quote 1) -> (quote 1) => 1
(quote quote) -> (quote quote) => quote
(quote "str") -> (quote "str") => "str"
(quote (cons a b)) -> (quote (cons a b)) => (cons a b)
(+ 1 2) -> (+ 1 2) => 3
(- 1 2) -> (- 1 2) => -1
(let (x 1) x) -> (let (x 1) x) => 1
(let (x (+ 1 10)) (+ x 100)) -> (let (x (+ 1 10)) (+ x 100)) => 111
(let (x 1) (+ x 1)) -> (let (x 1) (+ x 1)) => 2
(let (x 1)(- x x)) -> (let (x 1) (- x x)) => 0
(let (x 1) (let (y 2)y)) -> (let (x 1) (let (y 2) y)) => 2
(let (x 1) (let (y 2) (+ x y) ) ) -> (let (x 1) (let (y 2) (+ x y))) => 3
Latest Interpreter Tests.
Array
(
[fun] => e
[args] => (quote 1)
[expected] => 1
[actual] => 1
[status] => PASSED
)
Array
(
[fun] => e
[args] => (quote quote)
[expected] => quote
[actual] => quote
[status] => PASSED
)
Array
(
[fun] => e
[args] => (quote "str")
[expected] => str
[actual] => "str"
[status] => FAILED
)
Array
(
[fun] => e
[args] => (quote (cons a b))
[expected] => Array
(
[0] => cons
[1] => a
[2] => b
)
[actual] => Array
(
[0] => cons
[1] => a
[2] => b
)
[status] => PASSED
)
Array
(
[fun] => e
[args] => (+ 1 2)
[expected] => 3
[actual] => 3
[status] => PASSED
)
Array
(
[fun] => e
[args] => (- 1 2)
[expected] => -1
[actual] => -1
[status] => PASSED
)
Array
(
[fun] => e
[args] => (let (x 1) x)
[expected] => 1
[actual] => 1
[status] => PASSED
)
Array
(
[fun] => e
[args] => (let (x (+ 1 10)) (+ x 100))
[expected] => 111
[actual] => 111
[status] => PASSED
)
Array
(
[fun] => e
[args] => (let (x 1) (+ x 1))
[expected] => 2
[actual] => 2
[status] => PASSED
)
Array
(
[fun] => e
[args] => (let (x 1)(- x x))
[expected] => 0
[actual] => 0
[status] => PASSED
)
Array
(
[fun] => e
[args] => (let (x 1) (let (y 2)y))
[expected] => 2
[actual] => 2
[status] => PASSED
)
Array
(
[fun] => e
[args] => (let (x 1) (let (y 2) (+ x y) ) )
[expected] => 3
[actual] => 3
[status] => PASSED
)
Array
(
[fun] => e
[args] => (cons 0 0)
[expected] => Array
(
[0] => 0
[1] => 0
)
[actual] => Array
(
[0] => 0
[1] => 0
)
[status] => PASSED
)
Array
(
[fun] => e
[args] => (cons 1 2)
[expected] => Array
(
[0] => 1
[1] => 2
)
[actual] => Array
(
[0] => 1
[1] => 2
)
[status] => PASSED
)
Array
(
[fun] => e
[args] => (let (a 1)(cons a a))
[expected] => Array
(
[0] => 1
[1] => 1
)
[actual] => Array
(
[0] => 1
[1] => 1
)
[status] => PASSED
)
Array
(
[fun] => e
[args] => (let (a 1)(+ a a))
[expected] => 2
[actual] => 2
[status] => PASSED
)
Array
(
[fun] => e
[args] => (cons (+ 1 0) (+ 1 1))
[expected] => Array
(
[0] => 1
[1] => 2
)
[actual] => Array
(
[0] => 1
[1] => 2
)
[status] => PASSED
)
Array
(
[fun] => e
[args] => (cons (+ 1 0) (+ 1 1))
[expected] => Array
(
[0] => 1
[1] => 2
)
[actual] => Array
(
[0] => 1
[1] => 2
)
[status] => PASSED
)
Array
(
[fun] => e
[args] => (cons 1 (cons 2 3))
[expected] => Array
(
[0] => 1
[1] => Array
(
[0] => 2
[1] => 3
)
)
[actual] => Array
(
[0] => 1
[1] => Array
(
[0] => 2
[1] => 3
)
)
[status] => PASSED
)
Array
(
[fun] => e
[args] => (car (cons 1 2))
[expected] => 1
[actual] => 1
[status] => PASSED
)
Array
(
[fun] => e
[args] => (cdr (cons 1 2))
[expected] => Array
(
[0] => 2
)
[actual] => Array
(
[0] => 2
)
[status] => PASSED
)
Array
(
[fun] => e
[args] => (lets ((a 1) (b 2)) (cons a b))
[expected] => Array
(
[0] => 1
[1] => 2
)
[actual] => Array
(
[0] => 1
[1] => 2
)
[status] => PASSED
)
Array
(
[fun] => e
[args] => (lets ((a 1) (b 2)) (+ a b))
[expected] => 3
[actual] => 3
[status] => PASSED
)
Array
(
[fun] => e
[args] => (lets ((a 1) (b 2)) (lets ((total (+ a b))) (+ total total)))
[expected] => 6
[actual] => 6
[status] => PASSED
)
Array
(
[fun] => e
[args] => (lets ((a (+ 1 9)) (b (+ 10 80))) (lets ((total (+ a b))) (+ total total)))
[expected] => 200
[actual] => 200
[status] => PASSED
)
Array
(
[fun] => e
[args] => (let (y 1) (lambda (x) (+ x y)))
[expected] => Array
(
[0] => closure
[1] => Array
(
[y] => 1
)
[2] => Array
(
[0] => lambda
[1] => Array
(
[0] => x
)
[2] => Array
(
[0] => +
[1] => x
[2] => y
)
)
)
[actual] => Array
(
[0] => closure
[1] => Array
(
[y] => 1
)
[2] => Array
(
[0] => lambda
[1] => Array
(
[0] => x
)
[2] => Array
(
[0] => +
[1] => x
[2] => y
)
)
)
[status] => PASSED
)
Array
(
[fun] => e
[args] => (@ (let (y 10) (lambda (x) (+ x y))) 1)
[expected] => 11
[actual] => 11
[status] => PASSED
)
Array
(
[fun] => e
[args] => (@ (lets ((y 10)) (lambda (x) (+ x y))) 1)
[expected] => 11
[actual] => 11
[status] => PASSED
)
Array
(
[fun] => e
[args] => (@ (lambda (x) (+ x 1)) 1)
[expected] => 2
[actual] => 2
[status] => PASSED
)
Array
(
[fun] => e
[args] => (@ (lambda () (+ 1 1)))
[expected] => 2
[actual] => 2
[status] => PASSED
)
[fail][typecheck]:0 formals vs 1 args differs but must be equal.