IT練習ノート

IT関連で調べたこと(実際は嵌ったこと)を書いています。

catamorphism, anamorphism, histmorphism, dynamorphismの概要をつかむ記事

45deg.github.io

個人的に慧眼だったのは、不動点の節の説明での発想の転換の部分でした。

そもそもリストを関手で表現したいならば、こう定義した方がよさそうに見えます。 (2) List:=1+Int×List

しかしこれでは定義自身にList

が含まれる、いわゆる再帰的定義となってしまいます。

そこで、(2)を「方程式」とみなし、その方程式を満たすような List を「リストを表すデータ型」とする発想の転換をします。しかし、型同士の等式は = ではなく 同型 ≃ で結びます。