SICP3.5.4的改进以及评论

原文

1.png
2.png

这里引入了延时参数的概念,我觉得纯粹是多余的,甚至破坏了美感。

原本的integral流积分函数已经很完备了,不需要为了这种“特殊情况”重写。

况且,输出的y,本身也是流,也就说明期本身具备延迟求值的特性。
而且,把输出流当作是流本身的“原料”,这种迭代的做法也是作者经常使用的。而且他还冠名为隐式定义流,这里不知道是疏忽还是为了用作例子,没有完全贯彻。

以下是改进的函数。

(define (solve f y0 dt)
    (define y 
        (cons-stream y0 
            (stream-cdr (integral (stream-map f y) y0 dt))))
    y)

过程都是参造流程图改进,cons-stream本身具备delay的特性,不需要重写integral函数。

3.png

结果与书本一致。

这里引发了一个思考,是否有必要额外引入这个延时参数的概念,是否必须写这样的“特殊函数”?

我自己的答案是否。delay的是我们创造cons-stream的元素,cons-stream在流里发挥着delay的效用,没必要在构建流时生硬地搬入“底层的”delay。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 教程一:视频截图(Tutorial 01: Making Screencaps) 首先我们需要了解视频文件的一些基...
    90后的思维阅读 10,301评论 0 3
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 136,084评论 19 139
  • 原文地址: http://cr.openjdk.java.net/~briangoetz/lambda/lambd...
    mualex阅读 3,895评论 0 0
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 176,131评论 25 709
  • 11.10……115天 【感恩】 生活需要一颗感恩的心来创造,一颗感恩的心需要生活来滋养。常怀感恩心,一生无憾事。...
    吕志萍阅读 1,621评论 0 0

友情链接更多精彩内容