我开始学习newlisp,但引用并且'困惑我。
> (= '(quote 1) ''1)
nil
或
> (first (quote (quote 1)))
quote
> (first ''1)
ERR: array, list or string expected in function first : ''1
在newlisp中,引用不同于'?
或者,这是一个错误?
答案 0 :(得分:1)
两者之间存在细微差别。当引用的单元格被包装到保护包络中时,在源代码转换期间解析单引号。函数quote
在评估期间执行相同的操作。在大多数情况下,它们的行为方式相同。
因此函数quote
更像是原始的Lisp quote
。 '
是在代码转换期间执行的优化。如果您想了解有关代码转换和评估的更多信息,请比较函数read-expr
和eval-string
。