1

我找到了一个LISP 1.5 手册,里面有一些代码。

这个来自第 1.2 节

Examples

    cons[A;B]=(A . B)

通过阅读手册,该函数似乎cons将两个原子作为输入参数,A并且B输出一个 S 表达式,(A . B)

问题:

如何将代码cons[A;B]放入 repl、运行它并查看输出(A . B)

我期待做类似的事情:

~ $ lisp1.5
> cons[A;B]
=> (A . B)

例如,如果我去https://www.ruby-lang.org/en/看到一些代码,我会复制它,输入irb我的 shell 并粘贴它。

在此处输入图像描述

~ $ irb
irb(main):001:0> puts "Hello World!"
Hello World!
=> nil
4

1 回答 1

2

手册的第 1.2 节解释说,这只是一个符号,用于帮助读者区分函数和 S 表达式(强调我的)。

我们将介绍S-表达式的一些基本函数。为了将函数与 S 表达式本身区分开来,我们将用小写字母写函数名称,因为原子符号仅由大写字母组成。此外,函数的参数将被分组在方括号而不是括号中。作为分隔符或标点符号,我们将使用分号。

后面是一个例子:

cons[A ; B] = (A . B)

手册介绍了Lisp,它的评估模型,编译器等。以上是 的数学定义cons,其中AB是元变量:对于所有的值ABconsonA和的应用B是一个cons-cell,其中CAR部分A和CDR部分B。如果有人开发了一种指称语义来表达 Ruby 的评估模型,那么您将拥有相同的定义。如果你愿意,你可以转换这个符号,即你写(cons 1 2)来具体测试它。但是 1.5 手册可以说不是学习 Common Lisp 的最佳起点,自 1994 年以来就已标准化。您可以尝试以下方法:

请咨询Cliki,Common Lisp wiki。

于 2018-03-03T07:24:01.953 回答