Lisp 语言入门
Lisp 是一门历史悠久的语言,全名叫 LISt Processor,也就是“表处理语言”,它是由 John
McCarthy 于 1958 年就开始设计的一门语言。和 Lisp 同时期甚至更晚出现的许多语言如 Algo 等如今大
多已经消亡,又或者仅仅在一些特定的场合有一些微不足道的用途,到现在还广为人知的恐怕只剩下了
Fortran 和 COBOL。但唯独 Lisp,不但没有随着时间而衰退,反倒是一次又一次的焕发出了青春,从
Lisp 分支出来的 Scheme、ML 等语言在很多场合的火爆程度甚至超过了许多老牌明星。那么这颗常青树
永葆青春的奥秘究竟在哪里呢?
如果你只接触过 C/C++、Pascal 这些“过程式语言”的话,Lisp 可能会让你觉得十分不同寻常,首先吸
引你眼球(或者说让你觉得混乱的)一定是 Lisp 程序中异常多的括号,当然从现在的角度来讲,这种设计
的确对程序员不大友好,不过考虑到五六十年代的计算机处理能力,简化语言本身的设计在那时算得上是当
务之急了。
Lisp 的基本语法很简单,它甚至没有保留字(有些语言学家可能对这一点有异议,别怕,我听你们的),它
只有两种基本的数据,仅有一种基本的语法结构就是表达式,而这些表达式同时也就是程序结构,但是正如
规则最简单的围棋却有着最为复杂的变化一样,Lisp 使用最基本的语言结构定义却可以完成其它语言难于实
现的、最复杂的功能。
废话少说,现在我们就来看看 Lisp 语言中的基本元素。
Lisp 的表达式是一个原子(atom)或表(list),原子(atom)是一个字母序列,如 abc;表是由零个或多个表
达式组成的序列,表达式之间用空格分隔开,放入一对括号中,如:
abc
()
(abc xyz)
(a b (c) d)
最后一个表是由四个元素构成的,其中第三个元素本身也是一个表。
正如算数表达式 1+1 有值 2 一样,Lisp 中的表达式也有值,如果表达式 e 得出值 v,我们说 e 返回 v。如
果一个表达式是一个表,那么我们把表中的第一个元素叫做操作符,其余的元素叫做自变量。
评论1