原文

1.png

2.png
這里引入了延時(shí)參數(shù)的概念,我覺得純粹是多余的,甚至破壞了美感。
原本的integral流積分函數(shù)已經(jīng)很完備了,不需要為了這種“特殊情況”重寫。
況且,輸出的y,本身也是流,也就說明期本身具備延遲求值的特性。
而且,把輸出流當(dāng)作是流本身的“原料”,這種迭代的做法也是作者經(jīng)常使用的。而且他還冠名為隱式定義流,這里不知道是疏忽還是為了用作例子,沒有完全貫徹。
以下是改進(jìn)的函數(shù)。
(define (solve f y0 dt)
(define y
(cons-stream y0
(stream-cdr (integral (stream-map f y) y0 dt))))
y)
過程都是參造流程圖改進(jìn),cons-stream本身具備delay的特性,不需要重寫integral函數(shù)。

3.png
結(jié)果與書本一致。
這里引發(fā)了一個(gè)思考,是否有必要額外引入這個(gè)延時(shí)參數(shù)的概念,是否必須寫這樣的“特殊函數(shù)”?
我自己的答案是否。delay的是我們創(chuàng)造cons-stream的元素,cons-stream在流里發(fā)揮著delay的效用,沒必要在構(gòu)建流時(shí)生硬地搬入“底層的”delay。