(define length (lambda (L) (if (eq? L '()) 0 (+ 1 (length (cdr L)))))) (define map (lambda (f L) (if (eq? L '()) '() (cons (f (car L)) (map f (cdr L)))))) (define fibs (lambda (n) (if (= n 0) 0 (if (= n 1) 1 (+ (fibs (- n 1)) (fibs (- n 2))))))) (define fact (lambda (n) (if (= n 0) 1 (* n (fact (- n 1)))))) (define equal? (lambda (x y) (if (pair? x) (and (pair? y) (equal? (car x) (car y)) (equal? (cdr x) (cdr y))) (eqv? x y)))) (define 1+ (lambda (x) (+ x 1))) (define 1- (lambda (x) (- x 1))) (define succ 1+) (define pred 1-) (if (= (length '(a b c d e f g)) 7) 'passed 'failed) (if (equal? (map (lambda (x) (* x x)) '(1 2 3 4 5)) '(1 4 9 16 25)) 'passed 'failed) (if (= (fibs 10) 55) 'passed 'failed) (if (= (fact 10) 3628800) 'passed 'failed)