Add test file, implement and/or/not, prepare for proper compound proc

This commit is contained in:
2021-06-01 21:32:06 -04:00
parent 7b5435141a
commit 9d0003ff14
8 changed files with 108 additions and 15 deletions

43
test.scm Normal file
View File

@@ -0,0 +1,43 @@
(begin
(define (newline) (display "\n"))
(display (or #t #f)) (newline)
(display (and #t #f)) (newline)
(display (not #f)) (newline)
(define a 5)
(define (fib n)
(cond
((< n 0) (display "WARNING: n smaller than 0"))
((< n 3) 1)
(else (+ (fib (- n 2)) (fib (- n 1))))))
(define (fac n) (if (= n 1) 1 (* n (fac (- n 1)))))
(set! a (+ a a))
(define l (list a (* 3 3) (+ a a)))
(begin
(display "(fac ") (display a)
(display ") -> ") (display (fac a)) (display "\n"))
(begin
(display "(fib ") (display a)
(display ") -> ") (display (fib a)) (display "\n"))
(define l (cons 'a l))
(display l) (newline)
(display (cons 'a 'b)) (newline)
(display (car l)) (newline)
(display (cdr (cdr l))) (newline)
(display (pair? l)) (newline)
(display (pair? 'a)) (newline)
(display ((lambda (x y) (* x a)) 3 5)) (newline)
(display
(let ((a (+ a a))
(b (* a a))
(x 42))
(+ a b x)))
(newline)
(define (p)
(define a 42)
(define (f) a)
f)
(display ((p))) ; should return 42
(newline)
'done
)