-
Notifications
You must be signed in to change notification settings - Fork 0
/
2.23.rkt
26 lines (23 loc) · 844 Bytes
/
2.23.rkt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
#lang sicp
;; Exercise 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)
((proc (car items))
(if (null? (cdr items))
(proc (car items))
(for-each proc (cdr items)))))