(even? x)))
env1)
(check-equal? (eval '(f1 2) env1) true "internal definitions")
- (check-equal? (eval '(f1 3) env1) false "internal definitions"))))
+ (check-equal? (eval '(f1 3) env1) false "internal definitions")
+ (eval '(define (fib n)
+ (let fib-iter ((a 1)
+ (b 0)
+ (count n))
+ (if (= count 0)
+ b
+ (fib-iter (+ a b) a (- count 1)))))
+ env1)
+ (check-equal? (eval '(fib 10) env1) 55 "named let")
+ (eval '(define (factorial n)
+ (if (= n 1)
+ 1
+ (* (factorial (- n 1)) n)))
+ env1)
+ (check-equal? (eval '(factorial 10) env1) 3628800 "factorial test")
+ (check-equal? (eval '(unless true "true" "false") env1) "false" "unless test 1")
+ (check-equal? (eval '(unless false "true" "false") env1) "true" "unless test 2"))))
(run-tests metacircular2-tests)
\ No newline at end of file