SICP 問題 2.54
(define (equal? a b) (or (and (not (pair? a)) (not (pair? b)) (eq? a b)) (and (pair? a) (pair? b) (equal? (car a) (car b)) (equal? (cdr a) (cdr b)))))
gosh> (equal? '(this is a list) '(this is a list)) #t gosh> (equal? '(this is a list) '(this (is a) list)) #f