>>163
ありがとうございます。

想像していたのとはちょっと違って抽象度が高そうですが、
がんばって学んでみます。


>>167
考え始めたきっかけは最適化です。
ポイントフリーで記述していた式の中で、たまたま2つの関数が
関数合成に関して可換なのに気づいたので交換してみたら、
交換後に隣同士になった関数同士が融合できて最適化できました。

その時は本当に偶然見つけたのですが、もっと効率よく発見できないかと思い質問しました。
条件が分かれば悩まなくて済み、また勘違いで交換してしまうこともなくなります。

Haskell のデータ値はすべて抽象構文木で表せるので、
その形や変換する部分木の位置などに依るのかなと思っていましたが、
圏論の話が出てくるのは予想外でした。


自然関数は名前だけは知ってます(内容は未学習)。
多相関数は要するに型シグネチャに型変数を含む関数ですよね。