Lisp列表

Lisp列表

在Lisp中,列表如下所示:'(rose violet daisy buttercup).此列表前面有一个单撇号。 它可以写成如下,看起来更像是你可能熟悉的列表类型:

     '(rose
       violet
       daisy
       buttercup)
这份名单的要素是四种不同花朵的名字,它们之间用空格隔开,并用圆括号括起来,就像田野里有一块石头墙上的花。


数字,列表里面的列表

列表中也可以包含数字,如下所示:(+ 2 2) 这个列表有一个加号“+”,后面跟着两个“2”,每个都用空格隔开。

在Lisp中,数据和程序都以相同的方式表示。 也就是说,它们都是由空格分隔的单词,数字或其他列表的列表,并用圆括号括起来。 (Since a program looks likedata, one program may easily serve as data for another; this is a verypowerful feature of Lisp.)(因为程序看起来像是数据,所以一个程序可以很容易地作为另一个程序的数据,这是Lisp的一个非常强大的功能。)(顺便说一句,第一个括号里面的英文两句不是Lisp列表,因为它们包含‘;’和.作为标点符号。)

这里是另一个列表,这次列表里面有一个列表:

'(this list has (a list inside of it))
列表是由如下组成:‘ this’, ‘ list’,‘ has’, 以及 ‘ (a list inside of it)’。列表里面的列表由下面单词组成:‘ a’, ‘ list’, ‘ inside’,‘ of’, ‘ it’。


Lisp原子

在Lisp中,我们所称的单词被称为原子。 这个术语来源于“原子”一词的历史意义,意思是“不可分割的”。(See car cdr & cons Fundamental Functions.)

双引号之间的文本,甚至句子或段落也是一个原子。 这里是一个例子:

     '(this list includes "text between quotation marks.")

列表中的空白

列表中的空白量无关紧要。 从Lisp语言的角度来看,

     '(this list
        looks like this)
与此完全一样:
  '(this list looks like this)

GNU Emacs帮助您键入列表
当您在GNU Emacs中使用Lisp Interaction模式或Emacs Lisp模式输入Lisp表达式时,可以使用几个命令来格式化Lisp表达式,以便读取。 例如,按下键会自动缩进光标所在的那一行。 正确缩进区域中的代码的命令习惯上被绑定到M-C- \。 缩进的设计使您可以查看列表中的哪些元素属于哪个列表 - 子列表的元素缩进比包围列表的元素更多。

另外,当你输入一个右括号时,Emacs会立即将光标跳回到匹配的左括号,所以你可以看到它是哪一个。 这是非常有用的,因为你在Lisp中输入的每个列表都必须使其右括号与其左括号相匹配。

(See Major Modes, for more information about Emacs's modes.)

你可能感兴趣的:(emacs)