lisp实战文库_LISP编程举例

本文介绍了Lisp语言的历史和其独特之处,指出Lisp虽然以其繁多的括号著称,但其简单的基本语法结构却能实现复杂的编程任务。Lisp的表达式包括原子和表,并通过7个基本操作符进行操作。文章通过实例解释了Lisp中的表达式求值和公理应用。
摘要由CSDN通过智能技术生成

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

。如果一个表达式是一个表,那么我们把表中的第一个元素叫做操作符,其余的元

素叫做自变量。

正如欧几里德的几何世界中有五个公理一样,我们在这里给出

Lisp

世界中的

7

个公理(基

本操作符)

(quote

x)

返回

x

,我们简记为

'x

(atom

x)

x

是一个原子或者空表时返回原子

t

否则返回空表

()

Lisp

中我们习惯用原子

t

表示真,而用空表

()

表示假。

>

(atom

'a)

t

>

(atom

'(a

b

c))

()

>

(atom

'())

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值