Name:
Have you?
2011-08-04 19:23
(define make-c*r
(lambda (desc)
(define aux
(lambda (desc f)
(cond ((null? desc) f)
((eq? (car desc) 'a)
(aux (cdr desc)
(lambda (x) (car (f x)))))
((eq? (car desc) 'd)
(aux (cdr desc)
(lambda (x) (cdr (f x)))))
(else (error "Argument not 'a or 'd -- MAKE-C*R" (car desc))))))
(aux desc (lambda (x) x))))
(define cdddddddddar (make-c*r '(d d d d d d d d d a)))
Name:
Anonymous
2011-08-04 19:40
Me too!
(define (make-c*r cudders)
(foldl (lambda (cudder f)
((lambda (cr) (lambda (x) (f (cr x))))
(case cudder
((a) car)
((d) cdr)
(else (error "Argument not 'a or 'd -- MAKE-C*R" cudder)))))
(lambda (x) x) cudders))