在newLISP中,引用不同于'?

时间:2013-12-23 06:31:58

标签: newlisp

我开始学习newlisp,但引用并且'困惑我。

> (= '(quote 1) ''1)  
nil

> (first (quote (quote 1)))  
quote

> (first ''1)  
ERR: array, list or string expected in function first : ''1

在newlisp中,引用不同于'?
或者,这是一个错误?

1 个答案:

答案 0 :(得分:1)

两者之间存在细微差别。当引用的单元格被包装到保护包络中时,在源代码转换期间解析单引号。函数quote在评估期间执行相同的操作。在大多数情况下,它们的行为方式相同。

因此函数quote更像是原始的Lisp quote'是在代码转换期间执行的优化。如果您想了解有关代码转换和评估的更多信息,请比较函数read-expreval-string