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になっている。

  1. 𝕨=2, 𝕩=⟨2,3⟩としてdyadic function を実行して7
  2. 𝕨=2, 𝕩=⟨2,3⟩としてdyadic function -を実行して⟨0,¯1⟩
  3. 𝕨=7, 𝕩=⟨0,¯1⟩としてdyadic function -を実行して⟨7,8⟩

一方、後者は途中にNothingというsubjectが入っているので3-trainにはならない: 構文木

  1. 𝕨=1, 𝕩=⟨2,3⟩としてdyadic function -を実行して⟨¯1,¯2⟩
  2. 𝕨=·, 𝕩=⟨¯1,¯2⟩なのでmonadic function -を実行して⟨1,2⟩
  3. 𝕩=⟨1,2⟩としてmonadic function を実行して3

Nothingなしで後者を書きたいならこうなってしまう。

    1(+´(--))⟨2,3⟩
3

ということでNothingを使うことで括弧を増やさずにすむ。

3-trainとNothing

上の例は2-trainでの使用例だったが、括弧で囲むだけでできてしまう3-trainの制御としてNothingは使われる事が多い。

(A B C D E)

  1. A
  2. B
  3. 3-train (C D E)

の3-trainだが、

(A B C · D E)

  1. B
  2. C
  3. 2-train (DE)

の3-trainとAとの2-trainになる。