スパイダーグラフ:絵は大ざっぱに描くべし
ハブエントリー:
絵がテキストより分かりやすいのは、ノード/ワイヤー数が少ない場合で、ノード/ワイヤーが増えると結局はナンダカワカラナイ。
ノード/ワイヤー数を減らすには、絵で表現する情報を絞り込んで余分なことは描かない。細かい分類をしないで、類似のものは同じ形状で描いてしまう。大ざっぱに描くことは抽象度が上がることでもあるので、同じ絵にいろいろな解釈ができる。例えば:
黒丸のポイントジャンクションがAND分岐とAND合流、スポットのほうがOR分岐とOR合流。
ANDのほうを考えてみると、分岐はデータとしてはコピー(copy, dup, clone)、制御としてはcobegin、フォークポイントとなる。合流はデータとしてはタプルコンストラクタ、制御としてはcoend, ジョインポイントとなる。タプルコンストラクタは、XJSONの配列コンストラクタ、オブジェクトコンストラクタ、タギングコンストラクタのどれも同じ絵で表すことが出来る。ワイヤーに型以外のラベル(タグラベル)を目印に付けるとして:
- 配列:番号タグでラベル
- オブジェクト:名前タグでラベル
- タギング:$$tag, $$val という特殊タグでラベル
ジャンクションは証明図の推論とも解釈できて、分岐と合流が次に対応する。
A
------[増]
A A
A B
---------[∧導入]
A∧B
大ざっぱな絵では、同一の絵を、データ操作、プログラム制御、論理計算の観点から解釈できる。要するに、カリー/ハワード対応が目視で確認できるようになるわけ。