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)
我们也可以绘制信号流图。我们如何利用这些图表?
感谢您的建议和信息!
答案 0 :(得分:4)
对于图表的真实的视听说明,为什么不查看附带的视频?他们在here,讲座6A和6B。
至于图表的“真正优势”,它们是流处理的直观表示,不需要“背景知识”来理解它们,AFAIK这些图表的符号是SICP的特性的一部分通过阅读书籍并观看视频,您将了解所有关于它们的信息。
答案 1 :(得分:1)
要在评论中回答您的问题,
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]