1

我开始学习 newlisp,但引号和 ' 让我感到困惑。

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

或者

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

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

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

4

1 回答 1

1

两者之间存在细微差别。当引用的单元格被包装到保护信封中时,单引号在源代码翻译期间被解析。该函数quote的作用相同,但在评估期间。对于大多数目的,它们的行为方式相同。

所以这个函数quote更像是原始的 Lisp quote。这'是在代码翻译期间执行的优化。如果您想了解更多关于代码翻译和评估的信息,请比较函数read-expreval-string.

于 2013-12-23T08:17:43.083 回答