問題2.23 – SICP(計算機プログラムの構造と解釈)その40

問題2.23

(define (for-each proc items)
  (if (null? items)
      #f
      (and (proc (car items)) (for-each proc (cdr items)))))

(for-each (lambda (x) (newline) (display x))
          (list 57 321 88))
gosh> 
57
321
88#f

他の人の解答例を見てみると cond を使って else節 の中で2つの式を評価している例が多い。

(define (for-each proc items)
  (cond ((null? items) #f)
        (else
          (proc (car items))
          (for-each proc (cdr items)))))

(for-each (lambda (x) (newline) (display x))
          (list 57 321 88))
gosh> 
57
321
88#f
計算機プログラムの構造と解釈
ジェラルド・ジェイ サスマン ジュリー サスマン ハロルド エイブルソン
ピアソンエデュケーション
売り上げランキング: 6542
«
»