首页 > 代码库 > 【SICP读书笔记(二)】使用过程来黏合数据 —— 酷炫吊的消息传递机制
【SICP读书笔记(二)】使用过程来黏合数据 —— 酷炫吊的消息传递机制
首先,让我们来看几个内建函数
(cons x y),作用是把x和y绑定成一个序对
(car z),作用是提取z序对的第一个元素
(cdr z),作用是提取z序对的第二个元素
容易看出,这个东西有点类似OO语言里的类,car和cdr是get方法,x和y是成员变量。
但是,但是!
函数式的编程方式,居然可以利用过程来实现这三个函数!实在是不可思议
下面具体看看实现的过程
(define (cons x y) (lambda (m) (m x y)))(define (car z) (z (lambda (x y) x)))(define (cdr z) (z (lambda (x y) y)))
首先,cons过程接受两个元素,却不是返回我们想象中的数据,而是返回了一个以过程为参数的新过程
其次,在car过程中,接受这个cons产生的过程,并传递了一个新的过程给它,最后根据cons的参数表把要的数据读取了出来
实在是不可思议,大开眼界
【SICP读书笔记(二)】使用过程来黏合数据 —— 酷炫吊的消息传递机制
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。