Rebol の IN 関数は、フィールドがオブジェクト内にあるかどうかを調べます。
USAGE:
IN object word
DESCRIPTION:
Returns the word or block in the object's context.
IN is a native value.
ARGUMENTS:
object (any-object! block!)
word -- (modified if series) (any-word! block! paren!)
主張は、それがオブジェクトまたはブロックで機能するということです。オブジェクトで試してみると問題なく動作します:
>> in object [foo: 10 bar: 20] 'foo
== foo
しかし、生のブロックで試してみると、NONE が返されます。
>> in [foo: 10 bar: 20] 'foo
== none
ブロックをサポートしていない場合は理解できると思います(Rebol2はサポートしていませんでした)。しかし、ブロックが許可されている NONE を返さない場合はどうなるでしょうか?
そして、この 2 つの質問を 1 つにする危険を冒して、BLOCK を受け入れるとはどういうことでしょう! word
パラメータの?探している単語のセットがある場合、ブロックがかかると思いますが、ブロックを返すだけのようです:
>> in object [foo: 10 bar: 20] [mumble frotz bar]
== [mumble frotz bar]
>> in object [foo: 10 bar: 20] [mumble frotz]
== [mumble frotz]
そして、この 3 つの質問をするリスクを冒してでも、PAREN を取ることに何の意味があるでしょうか! 言葉のために?