44 lines
1.1 KiB
Scheme
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
|
|
)
|
|
|