このブログは、旧・はてなダイアリー「檜山正幸のキマイラ飼育記 メモ編」(http://d.hatena.ne.jp/m-hiyama-memo/)のデータを移行・保存したものであり、今後(2019年1月以降)更新の予定はありません。

今後の更新は、新しいブログ http://m-hiyama-memo.hatenablog.com/ で行います。

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}}