我找到了LISP 1.5 Manual,其中包含一些代码。
这是来自第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/并看到了一些代码,我会复制它,在我的shell中输入irb
并粘贴它。
~ $ irb
irb(main):001:0> puts "Hello World!"
Hello World!
=> nil
答案 0 :(得分:2)
本手册的第1.2节解释了这只是一种符号,用于帮助读者区分功能和S表达式(强调我的)。
我们将介绍S表达式的一些基本功能。 要区分 来自S表达式本身的函数,我们将编写函数名称 我小写字母,因为原子符号只包含大写字母。此外, 函数的参数将分组在方括号中而不是 括弧。作为分隔符或标点符号,我们将使用分号。
接下来是一个例子:
cons[A ; B] = (A . B)
本手册介绍了Lisp,其评估模型,编译器等。
以上是cons
的数学定义,其中A
和B
是元变量:对于所有值A
和B
,{{1}的应用} cons
和A
是一个缺点单元格,其中CAR部分为B
,CDR部分为A
。如果有人开发了一种表示语义来表达Ruby的评估模型,那么你将拥有相同类型的定义。如果需要,您可以转换此表示法,即您编写B
以进行具体测试。但1.5手册可能不是学习Common Lisp的最佳起点,自1994年开始标准化。您可以尝试以下方法,而不是:
Practical Common Lisp,Peter Seibel
Paradigms of Artificial Intelligence Programming,Peter Norvig
请参阅Common Lisp wiki的Cliki。