関係の見出しは、[ /a /b ]
のような項目の並びです。
入れ子の関係に対しては、[ /a /b /g [ /b /c ]]
のように、
見出しも入れ子になります。
このノートでは、見出しを平面に展開して表示する方法を考えます。
甲州計算機のバージョン 0.50 に対応します。
まず、関係写像 p
が項目 /a
/b
からなる関係を出力し、
q
が項目 /b
/c
の関係を出力するとします。
その見出しと、交わりの見出しを平面表示すると、つぎのようになります。
p q p | meet q
[ /a /b ] [ /b /c ] [ /c /a /b ]
/a /b /c
/b /c /a
/b
入れ子関係は、項目の並びを右に深くし、階層的に表示するとします。
pg : p | group /g q gc : pg | for /g ( pick /c )
[ /g [ /b /c ] /a /b ] [ /g [ /c ] /a /b ]
/g /b /g /c
/c /a
/a /b
/b
さらに深い階層があるとき。
gc | for /g ( group /h r | for /h ( cut /c )) | add /e ( /g/h/d )
[ /e /g [ /h [ /d ] /c ] /a /b ]
/e
/g /h /d
/c
/a
/b
- この例は head-5.k に含まれています。
見出しの平面表示に、型と代表値とその出現回数を表示すると、 関係の要約として使えるでしょう。 甲州記法では、ひとつの項目に、複数の型の内容が入ることがあるので、 そのときは、型の種類だけ行をとって表示します。
/g /b : num 20 (3)
/c : num 10 (1)
: text 'C1 (1)
/a : num 10 (2)
/b : num 20 (3)