6.2 Nothing '·
'
どうしても括弧で囲むことが必要な関数の並びをtrainにするかどうかを制御する際に使われるのが
Nothing '·
'である。
The character
·
is called Nothing. While it can be easier to think of it as a value, it can't be passed around in variables, and so can also be interpreted as an element of syntax. The special name 𝕨 also functions as Nothing if the block that contains it is called with one argument (the uppercase spelling 𝕎 doesn't, but instead immediately causes an error). Both·
and 𝕨 have a subject role.
以下はNothingの使用例である。
1(+´--)⟨2,3⟩
⟨ 7 8 ⟩
1(+´·--)⟨2,3⟩
3
前者ではdyadic function ー
で値を生成する3-trainになっている。
- 𝕨=2, 𝕩=⟨2,3⟩としてdyadic function
+´
を実行して7 - 𝕨=2, 𝕩=⟨2,3⟩としてdyadic function
-
を実行して⟨0,¯1⟩ - 𝕨=7, 𝕩=⟨0,¯1⟩としてdyadic function
-
を実行して⟨7,8⟩
一方、後者は途中にNothingというsubjectが入っているので3-trainにはならない: 構文木
- 𝕨=1, 𝕩=⟨2,3⟩としてdyadic function
-
を実行して⟨¯1,¯2⟩ - 𝕨=
·
, 𝕩=⟨¯1,¯2⟩なのでmonadic function-
を実行して⟨1,2⟩ - 𝕩=⟨1,2⟩としてmonadic function
+´
を実行して3
Nothingなしで後者を書きたいならこうなってしまう。
1(+´(--))⟨2,3⟩
3
ということでNothingを使うことで括弧を増やさずにすむ。
3-trainとNothing
上の例は2-trainでの使用例だったが、括弧で囲むだけでできてしまう3-trainの制御としてNothingは使われる事が多い。
(A B C D E)
は
A
B
- 3-train
(C D E)
の3-trainだが、
(A B C · D E)
は
B
C
- 2-train
(DE)
の3-trainとA
との2-trainになる。