Catyスクリプトの書き方 ナニカと比較編
普通のプログラミング言語との比較
逐次実行 A; B
// 流すデータがあるなら
A | B// 流すデータがないなら
A ; B
条件分岐 if P then A else B
P | when {True=>A, False=>B}
条件分岐 if P then A endif
// 次にデータを流すなら
P | when {True=>A, False=>pass}// データを流さないなら
P | when {True=>A, False=>void}
リストのfor文 foreach x in list do A
list | each {A}
while文 while P do A
begin {P | when {False=>void, True=> A | repeat}}
短絡AND P andalso Q
P |& Q
短絡OR P orelse Q
P || Q
代入文 x := A
A > x
圏論との比較
射の結合 f;g (ほんとは、inclusionをはさむ)
f | g
恒等射 id
pass
デカルトペアリング <f, g>
[f, g]{"a":f, "b":g}
do {f >:"a", g >:"b"}
射影 π1
nth 1
pv a
終射 !
void
デカルト余ペアリング [f, g]
when {1=>f, 2=>g]
入射 ι1
@1 pass
クリーネスター f*
each {f}
エルゴットダガー f†
begin {f | when {1=>pass, 2=>repeat}}