码迷,mamicode.com
首页 > 其他好文 > 详细

【SICP读书笔记(二)】使用过程来黏合数据 —— 酷炫吊的消息传递机制

时间:2014-12-09 12:07:25      阅读:185      评论:0      收藏:0      [点我收藏+]

标签:blog   ar   使用   sp   on   数据   div   log   bs   

首先,让我们来看几个内建函数

(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读书笔记(二)】使用过程来黏合数据 —— 酷炫吊的消息传递机制

标签:blog   ar   使用   sp   on   数据   div   log   bs   

原文地址:http://www.cnblogs.com/shadowmydx/p/4152844.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!