'(a 'b) 给出答案 (a 'b)。当 a 没有绑定(未加引号)时,这是如何工作的。
这就是我们计算表达式时发生的情况:
'(a 'b)
=> (a 'b)
The '
quote 是简写quote http://docs.racket-lang.org/guide/quote.html特殊形式,请参阅链接文档了解更多详细信息:
(quote (a 'b))
=> (a 'b)
正如您所看到的,它阻止了引用的参数被求值,所以如果a
是未定义的,因为a
不被解释为带引号的表达式内的变量。如果我们尝试建立这样的列表,那就是另一回事了:
(list a 'b)
上面会产生错误,因为a
是一个未定义的变量,而b
是一个引用表达式。不过,这会起作用 - 因为列表中的两个元素都被引用了:
(list 'a 'b)
=> (a b)
这是构建问题中显示的列表的另一种方法:
(list 'a ''b)
=> (a 'b)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)