問題2-23
mapに似ているfor-each手続きです。今日は気力が尽きてきたので、上手くいかなかったパターンと、上手くいっているっぽいパターンをアップするだけにします。
(define (for-each proc items) (if (null? items) '() ((proc (car items)) (for-each proc (cdr items)))))
これでは上手くいきませんでした。最後までdisplayはされますが、その後でエラーが発生してしまいます。
そこで、以下のように書き直しました。
(define (for-each proc items) (proc (car items)) (if (null? (cdr items)) '() (for-each proc (cdr items)))) (for-each (lambda (x) (newline) (display x)) (list 57 321 88))
手続きに入った瞬間にprocを実行するような処理です。しかし、これだと最後にnilが返されてしまいます。これがこの問題の主旨に合っているかどうかはまでは、突き詰めることができませんでした。