Skip to content

Latest commit

 

History

History

empty-filler

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 

空番

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