【发布时间】:2016-07-23 14:05:07
【问题描述】:
在 Scheme 中,我正在运行 (quote (+ 2 3)) returns (+ 2 3)。据我了解,这句话只是告诉 Scheme 不要出于某种目的评估我的表达式。我正在尝试在不使用引号的情况下列出(+ 2 3)。所以我尝试了:
输入:(cons '+' (cons 2 (cons 3 '())))
方案返回:(+ cons 2 (cons 3 (quote ())))
- 我不明白为什么我得到这个返回值。我希望(+ 2 3)
输入:(cons '+' (2,3))
方案返回:(+ 2 3)
- 我不明白这是如何工作的。那么,(cons '+' (2,3)) 和 (quote (+ 2 3)) 一样吗?
【问题讨论】:
-
你的引号太多了。你想要
(cons '+ ...),而不是(cons '+' ...)。 -
@AlexisKing 哦,我以为我需要 '+' 来表示 + 是一个字符,然后 '() 来指定 NULL 列表
-
@AnonymousGal
+是一个符号。一个字符将写为#\+。当你使用两个单引号时,第一个引用+-symbol,第二个引用下面的列表。