Skip to content

Latest commit

 

History

History
100 lines (70 loc) · 3.43 KB

README.md

File metadata and controls

100 lines (70 loc) · 3.43 KB

空番

甲州記法の () という記号は、日本語で 空番 (くうばん) とよばれ、 主として、項目の内容が空であることを意味するために使われます。 英語では、empty または empty filler とよばれます。

甲州記法で使われる内容記号、つまり、項目の内容として使われる記号は、 記号それ自身で、その意味が確定しているわけではありません。 たとえば、1 という記号は、主として、数値の 1 の意味で使われますが、 ほかの使い方をしても構いません。 その具体的な意味は、文脈ごとに定まります。 空番もそれが使われる文脈によって、特定の意味が確定します。 1 を数値の 1 で使うことがもっとも多いように、 () は、多くの場面で「空である」や「なにもない」を意味するのに使われます。

このノートは、甲州計算機バージョン 0.65 において、 空番が使われる場面を説明します。

判断の読み書き

判断が source で指定した項目をもっていないとき、 その項目の内容は () として読み込まれます。 逆に判断を書き出すときは、既定では () の項目は省略して書き出されます。 ただし -empty をつけたときは、空項目も書き出されます。

|-- A  /x 1  /y 10
|-- A  /x 1  /y 20
|-- A  /x 2

a : source A /x /y

|== B : a
|== C -empty : a

この計算の結果は、つぎのように出力されます。

|-- B  /x 1  /y 10
|-- B  /x 1  /y 20
|-- B  /x 2

|-- C  /x 1  /y 10
|-- C  /x 1  /y 20
|-- C  /x 2  /y ()

maybe

交わり meet の代わりに、たぶん maybe を使うと、 交わらない組に () をおぎないます。 この計算は、a の組に対して、 交わり可能な b の組がないことを意味します。

|-- A  /x 1  /y 10
|-- A  /x 1  /y 20
|-- A  /x 2

|-- B  /y 20  /z 50
|-- B  /y 20  /z 60

a : source A /x /y
b : source B /y /z

|== C : a | meet b
|== D : a | maybe b

つぎのように出力されます。

|-- C  /z 60  /x 1  /y 20
|-- C  /z 50  /x 1  /y 20

|-- D  /x 1  /y 10
|-- D  /z 60  /x 1  /y 20
|-- D  /z 50  /x 1  /y 20
|-- D  /x 2

未定義の計算結果

項目計算式の結果が未定義であるとき、その結果の表現方法として、 何種類か考えられます。たとえば、数値に空番を足す 10 + () のような計算結果は、どのようになるとよいでしょうか。

  • 未定義であることをあらわす内容 << undef ... >> とする。
  • エラーとして処理を中断する。
  • 空番 () とする。

現在の甲州計算機には実装されていませんが、 将来的には、未定義内容を使えるようになると思われます。 つぎのように、関係写像を演算子 undef で囲むことで、 部分的に動作を変更できるようになるでしょう。

undef -keep ( ... )
undef -abort ( ... )
undef -empty ( ... )