Lisp Scheme Part19
■ このスレッドは過去ログ倉庫に格納されています
0779デフォルトの名無しさん
2008/03/02(日) 00:08:16にある以下のプログラムなんですが、
(define evens-only*&co
(lambda (l col)
(cond
((null? l) (col (quote ()) 1 0))
((atom? (car l))
(cond
((even? (car l)) (evens-only*&co (cdr l)
(lambda (newl P S)
(col (cons (car l) newl) (* (car l) P) S))))
(else (evens-only*&co (cdr l)
(lambda (newl P S)
(col newl P (+ (car l) S)))))))
(else
(evens-only*&co (car l) ; ここから以下がよく理解できない
(lambda (al ap as)
(evens-only*&co (cdr l)
(lambda (dl dp ds)
(col (cons al dl) (* ap dp) (+ as ds))))))))))
特に (col (cons al dl) (* ap dp) (+ as ds)) とする意味が分かりません。
こういうものはどういう思考で捉えていけば良いのでしょうか?
具体値で考えると確かに正しいことは分かるのですが、それを一般式で
表すのが難しくて思いつきません。
■ このスレッドは過去ログ倉庫に格納されています