Higher-Order List Operations |
|
(define (map fn list-of-values)
;; MAP: (X->Y, X*) -> Y*
(if (null? list-of-values)
'()
(cons (fn (car list-of-values))
(map fn (cdr list-of-values)))))
(define (accumulate initial-value
operation list-of-elements)
;; ACCUMULATE: (X, (Y, X)->X, Y*) -> X
(if (null? list-of-elements)
initial-value
(operation
(car list-of-elements)
(accumulate initial-value operation
(cdr list-of-elements)))))
| Jim Miller |