Scheme 方案-如何使用"&引用;作为象征

Scheme 方案-如何使用"&引用;作为象征,scheme,Scheme,我想做一些类似的事情: (car '(. a)) 得到 . 结果, 例如,如果您键入 '. 在控制台中,您将获得我想要的输出。问题是我不想在所有的句子前面都加一个撇号。在列表中 有什么指导吗?编辑:这似乎只在MIT/GNU方案中有效 ”创建符号和列表文字。如果你想把作为一个符号,它就是。 如果a是符号文字,则可以使用 (car '(. a)) 或 如果a是一个变量,请尝试 (car `(. ,a)) 或 在Scheme的读取语法中,独立点是特殊的”。不会给你一个点符号;这是无效的语法。

我想做一些类似的事情:

(car '(. a))
得到

.
结果,

例如,如果您键入

'.
在控制台中,您将获得我想要的输出。问题是我不想在所有的句子前面都加一个撇号。在列表中


有什么指导吗?

编辑:这似乎只在MIT/GNU方案中有效

创建符号和列表文字。如果你想把
作为一个符号,它就是

如果
a
是符号文字,则可以使用

(car '(. a))

如果
a
是一个变量,请尝试

(car `(. ,a))


在Scheme的读取语法中,独立点是特殊的<“代码>”。不会给你一个点符号;这是无效的语法。(如果它在您的实现中起作用,那么这只是您的实现的一个特殊怪癖。)

相反,你必须逃避它。在大多数方案实现中,您可以使用

(car '(\. a))   ; returns the same thing as (string->symbol ".")
(car '(|.| a))  ; likewise

试试看(汽车)。。。这对我来说不起作用:(.这是我试图解决的问题。嗯。对我来说是有效的(MIT/GNU方案),但这可能是一个实现问题。这里的另一个答案表明你的解决方案是无效语法…谁是对的?:)我认为R5R是对的。我的工作在麻省理工学院/GNU计划下,但显然不在敲诈之下。
(car (list '. a))
(car '(\. a))   ; returns the same thing as (string->symbol ".")
(car '(|.| a))  ; likewise