去年的一篇blog:从“OO的价值”说起
《银河系搭便车指南》里的一个片段:高度发达的智慧生物们建造了一台全宇宙(如果不考虑未来的时间的话)最强大的计算机,然后向它提出了问题:宇宙的意义是什么?人生的意义是什么?对于这个“终极问题”,计算机思考了750万年,并给出一个答案……42。“42?那是什么意思?那就是‘终极问题’的答案吗?”没错,那就是答案。之所以你无法理解这个答案,因为你压根就没有理解你提出的问题。
SICP第二章讲到“数据即操作”:所谓数据,也就是由一组自洽的操作所描述的东西。至于背后是一个局部变量、一个参数或者一个函数、一个流,无所谓。唯一有意义的构造函数和读取函数,譬如对于“复数”这一数据类型,唯一有意义的是下列三个操作:
(make-complex real image)
(get-real complex)
(get-image complex)
真正有趣的是,不一定要各用一个变量保存复数的实部和虚部。比如说可以把复数保存为“(2的real次方)*(3的image次方)”:
(define (make-complex real image)
(* (expt 2 real) (expt 3 image))
这样一来,比如说12就可以被解释为复数{2,1}。那么42呢,或许也是类似的一个东西吧。没有操作,数据就没有意义;数据即是操作。从这点来说,《银河系搭便车指南》确实寓意深刻亚~~
- 作者: 透明 2005年07月15日, 星期五 14:00
你可以使用这个链接引用该篇日志 http://publishblog.blogdriver.com/blog/tb.b?diaryID=816942