Files
schemers/test.scm

44 lines
1.1 KiB
Scheme

(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
)