コパスタ余会ネタ 2
注意:distributorは用語的に問題があって、distributivityとか言うほうが望ましいだろう。が、-er, -or って語尾はコンピュータ/ソフトウェア屋さんは好きだから、distributor使う。
まず普通の足し算に関して:
- associator自然同型 (A+B)+C ⇒ A+(B+C)
- 左unitor自然同型 0+A ⇒ A
- 右unitor自然同型 A+0 ⇒ A
掛け算も同様。それで、
- 左distributor自然同型 A×(B+C) ⇒ A×B + A×C
- 右distributor自然同型 (B+C)×A ⇒ B×A + C×A
対称性の用語が山ほどあって、
- symmetry, symmetric braiding, flip, twist, swap, cross, crossing, interchange, exchange, ...
足し算も掛け算も対称だが、足し算のほうが印象としては対称性が強い。
左右を強く区別する足し算を環和(+)で表して、
- associator自然同型 (A+B)(+)C ⇔ A(+)(B+C)
- 左unitor自然同型 0(+)A ⇔ A
- 右unitor自然同型 A(+)0 ⇔ A
unitorに関しては、A ⇒ 0(+)A という埋め込みしか意味ないかも。
A(+)B ⇔ B(+)A というフリップはあるけど、これはすごいね。えぐいね。
普通の和+と環和(+)が混じった和を混合和として、環積(×)は次を基本に定義:
- (A(+)B)(×)C = A(+)(B(×)C)
dissociative法則だな(dis-sociative)。
それはそうとして:
- 嫌われ者ユニオン型は再認識すべきだ。
- 例外で本質的なのはキャッチャー(フィルター)のみ。
- 例外ハンドラーは通常コードであり、なんら特殊なことはない。
- キャッチャーは、tryスコープを引数にする関手とみなせる。
- ハンドラや後続コードをひっつけて関手作っても、まー、それは別に自由。
- キャッチャーは、和と環和を持つ圏のassoaciatorだとも言える。
- 環和は対称性を持たない! 入れ子にできるが、解釈はやや面倒。
- やや面倒だが、現象の説明には使える。
- ok-error方式、monitor-throw 構文、catch-return 構文、とassociator
- まさに正常、ちょっと異常っぽい、異常入っている、普通に異常
- 普通に例外、どうしようもなく例外、とんでもなく例外、想像を絶する例外