关于Lisp的一点点

以后写的语言相关应该主要是Ruby(也许还有少数的C)了,所以在这里先记录一点关于Lisp的东西。

首先是一个小故事:

在 ILC 2002 大会上前Lisp大神,当今的Python倡导者Peter Norvig,由于某些原因,做一个类似于马丁路德在梵蒂冈宣扬新教的主题演讲,因为他在演讲中大胆地声称Python就是一种Lisp。
讲完后进入提问环节,出乎我意料的是,Peter点了我过道另一侧,靠上面几排座位的一个老头,他衣着皱褶,在演讲刚开始的时候踱步进来,然后就靠在了那个座位上面。
这老头满头凌乱的白发,邋遢的白胡须,像是从旅行团中落下的游客,已经完全迷路了,闲逛到这里来歇歇脚,随便看看我们都在这里干什么。我的第一个念头是,他会因为我们的奇怪的话题感到相当失望;接着,我意识到这位老头的年纪,想到斯坦福就在附近,而且我想那人也在斯坦福 —— 难道他是……
“嗨,John,有什么问题?” Peter说。
虽然这只是10个字左右的问题,我不会假装自己记住了Lisp之父约翰麦卡锡说的每一个字。他在问Python程序能不能像处理数据一样,优雅地处理Python代码。
“不行。John, Python做不到。” Peter就回答了这一句,然后静静地等待,准备接受教授的质疑,但老人没有再说什么了。

 然后是Lisp的七条公理(基本运算符):

1. (quote x) --> x
2. (atom x) --> t or ()
3. (eq x y) --> t or ()
4. (car x) --> x1 ...the first element of x
5. (cdr x) --> xr ...the rest elements of x
6. (cons x y) --> (xe ye) ...all elements of x and y
7. (cond (p1e1) (p2e2)...(pnen)) --> et ...en of the condition pn is t.

 再然后是个人喜欢的Lisp现代分支:Racket。官网:http://racket-lang.org/

 

如果了解一些逻辑或者计算机理论的相关基础,到此应该已经能看出,Lisp的独特之处所在。

Lisp不是作为一种计算机语言设计的,而是基本逻辑的表达。某种意义上,这是Lisp之所以小众的理由。

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值