2.23¶
; The procedure for-each is similar to map. It takes as arguments a procedure ; and a list of elements. However, rather than forming a list of the results, ; for-each just applies the procedure to each of the elements in turn, from ; left to right. The values returned by applying the procedure to the elements ; are not used at all—for-each is used with procedures that perform an action, ; such as printing. For example, ; (for-each (lambda (x) (newline) ; (display x)) ; (list 57 321 88)) ; 57 321 88 ; The value returned by the call to for-each (not illustrated above) can be ; something arbitrary, such as true. Give an implementation of for-each. (define (for-each proc items) (cond ((null? items) #t) (else (proc (car items)) (for-each proc (cdr items))))) (for-each (lambda (x) (newline) (display x)) (list 57 321 88)) ; 57 ; 321 ; 88 ; Value: #t