如何将代码`cons [A; B]`放在repl中,运行它,看输出`(A.B)`?

时间:2018-03-03 02:47:47

标签: lisp metalanguage

我找到了LISP 1.5 Manual,其中包含一些代码。

这是来自第1.2节

Examples

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

从阅读手册看起来,函数cons将两个原子作为输入参数AB,并输出一个S表达式,(A . B)

问题:

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

我期待做类似的事情:

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

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

enter image description here

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

1 个答案:

答案 0 :(得分:2)

本手册的第1.2节解释了这只是一种符号,用于帮助读者区分功能和S表达式(强调我的)。

  

我们将介绍S表达式的一些基本功能。 要区分   来自S表达式本身的函数,我们将编写函数名称   我小写字母,因为原子符号只包含大写字母。此外,   函数的参数将分组在方括号中而不是   括弧。作为分隔符或标点符号,我们将使用分号。

接下来是一个例子:

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

本手册介绍了Lisp,其评估模型,编译器等。 以上是cons的数学定义,其中AB是元变量:对于所有值AB,{{1}的应用} consA是一个缺点单元格,其中CAR部分为B,CDR部分为A。如果有人开发了一种表示语义来表达Ruby的评估模型,那么你将拥有相同类型的定义。如果需要,您可以转换此表示法,即您编写B以进行具体测试。但1.5手册可能不是学习Common Lisp的最佳起点,自1994年开始标准化。您可以尝试以下方法,而不是:

请参阅Common Lisp wiki的Cliki