文字类型

type of literal words

我正在阅读 Bindology 并试过这个:

>> type? first ['x]
== lit-word!
>> type? 'x
== word!

我也希望 type? 'x 到 return lit-word!。感谢任何见解。

一个字!如果在 "live" 上下文中被评估者解析为单词本身。当你想传递一个 WORD 时,它可以用来简单地用一个标记来抑制评估!函数的值。 (当然,当你扮演"evaluator"的角色时,用你自己的方言来说,这是一个Tinker-Toy,你可以把它变成任何你想要的意思。)

你想得到一个真正的 LIT-WORD 吗?您将不得不以某种方式阻止评估者将其变成 WORD!。您注意到这可以通过从未评估的块中挑选出来来实现,例如使用 first ['x]。但是更"correct"的方法是使用quote 'x:

>> type? quote 'x
== lit-word!

注意一个称为 "lit-word decay" 的奇怪错误:

>> x-lit: quote 'x
>> type? x-lit
== word!

已经 corrected in Red 并且正在等待 Rebol 中的更正。在那之前你必须使用 GET-WORD!从保存它的变量中提取一个 lit-word 值:

>> x-lit: quote 'x
>> type? :x-lit
== lit-word!

(您可能已经遇到过这种做法,作为获取单词值的方式,而不是通过求值器 "running" 它...函数的值 vs. 调用它。对于持有 lit-word 的值不应该是必需的!。历史的偶然事件,看起来。)