sample problems: pattern matching (2)
- solution
(define (match pat dat)(cond ((not (eq? (length pat) (length dat))) #f)
((null? pat) ‘()) (let ((d (match (cdr pat) (cdr dat)))) (if (not d) d (cond ((var? (car pat)) (insert (car pat) (car dat) d)) ((anon-var? (car pat)) d) ((eq? (car pat) (car dat)) d) (else #f))))))