函数式编程学习-SICP-LISP-流STREAM的实现-流编程思路和惰性/延时求值

原教学视频

如何实现流:

在流的这一课,重新构造了CONS

比如
(CONS-STREAM X Y)
(HEAD S)
(TAIL S)
THE-EMPTY-STREAM
对于任意的x和y,有
HEAD (CONS-STREAM X Y) =X
TAIL (CONS-STREAM X Y) =Y
以上可以是表的另外一种说法。

有了以上内容,我们可以定义很多函数:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

可以说,流是你设计的用来满足你约定的接口的一个工具。

在这里插入图片描述

回溯搜索问题上,我们的方法会获得全部的解。但实际情况中,我们不需要获得那么多。因为我们可以通过流组织程序,因为流不是表。

比如

(HEAD (TAIL (FILTER PRIME? (ENUM-INTERVAL 1000 100000)))
CONS-STREAM X Y是什么的简化:
(CONS X (DELAY Y))

HEAD S 是(CAR S)的简化

TAIL S 是(FORCE(CDR S))的简化


FORCE
P 是(P)的简化。


DELAY <exp>是
(λ()<exp>)的简化

在这里插入图片描述
现在用流实现些什么吧:
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值