2.23
练习 2.23 过程for-each与map类似,它以一个过程和一个元素表为参数,但它并不返回结果的表,只是将这一过程从左到右应用于各个元素,将过程应用于元素得到的值都丢掉不用。for-each通常用于那些执行了某些动作的过程,如打印等。看下面例子:
(for-each (lambda (x) (newline) (display x))
(list 57 321 88))
57
321
88
由for-each的调用返回的值(上面没有显示)可以是某种任意的东西,例如逻辑值真。请给出一个for-each的实现。
(define (for-each proc lst)
(if (null? lst)
#t
((proc (car lst)) (for-each proc (cdr lst)))
)
)
(for-each (lambda (x) (newline) (display x))
(list 57 321 88))