SICP第3.5.3章http://mitpress.mit.edu/sicp/full-text/book/book-Z-H-24.html#%_sec_3.5.3
在Streams as signals
部分中,SICP通过反馈回路对Implicit style of definition
进行了视听解释。但我想知道如何准确理解这个图表?真正的优势是什么?有什么背景知识吗?
举另一个例子,不是在Scheme中,而是在Haskell中:
fibs = fix (scanl (+) 0 . (1:))
fibs = fix ((0:) . scanl (+) 1)
我们也可以为任何一个绘制信号流程图。我们如何利用这些图表?
感谢您的建议和信息!
对于图表的真实视听解释,您为什么不看一下随附的视频呢?他们在这里,第6A讲和第6B讲。
至于图表的"真正优势",好吧,它们是流处理的视觉表示,理解它们不需要"背景知识",AFAIK这些图表的符号是SICP特质的一部分,通过阅读书籍和观看视频,你会知道关于它们的所有信息。
要在评论中回答您的问题,
Prelude> let bs = 1:map (n-> sum $ take (n+1) bs) ( map (`div`2) [1..])
Prelude> take 20 bs
[1,1,2,2,4,4,6,6,10,10,14,14,20,20,26,26,36,36,46,46]
Prelude> let as = 1:1:g 2 (drop 2 as) where g x ~(a:b) = x:x:g(x+a)b
Prelude> take 20 as
[1,1,2,2,4,4,6,6,10,10,14,14,20,20,26,26,36,36,46,46]
Prelude> take 20 $ map (n-> sum $ take (n+1) as) $ map (`div`2) [0..]
[1,1,2,2,4,4,6,6,10,10,14,14,20,20,26,26,36,36,46,46]