evens-only*&co
145ページのTheLittleSchemerの例で何が起こっているのか理解するのに苦労しています。
コードは次のとおりです。
(define evens-only*&co
(lambda (l col)
(cond
((null? l)
(col '() 1 0))
((atom? (car l))
(cond
((even? (car l))
(evens-only*&co (cdr l)
(lambda (newl product sum)
(col (cons (car l) newl)
(opx (car l) product)
sum))))
(else
(evens-only*&co (cdr l)
(lambda (newl product sum)
(col newl product (op+ (car l) sum)))))))
(else
(evens-only*&co (car l)
(lambda (newl product sum)
(evens-only*&co (cdr l)
(lambda (dnewl dproduct dsum)
(col (cons newl dnewl)
(opx product dproduct)
(op+ sum dsum))))))))))
イニシャルcol
は次のとおりです。
(define evens-results
(lambda (newl product sum)
(cons sum (cons product newl))))
私が得ていないのは、l
asで、それはasとasで'((1) 2 3)
すぐに決勝に進むということです。良いですが、、、から、、、を整理しようとすると、私の心は空白になります。また、ステッパーを実行するためのDrRacket、Chez Scheme、またはMIT-Schemeのセットアップ方法について誰かが私に指導してくれると助かります。else
(car l)
(1)
(cdr l)
(2 3)
dnewl
dproduct
dsum
newl
product
sum
しかし、多分私は早すぎます。これを初めて読む初心者は、実際にこの野生の継続を理解することになっていますか?