関数型プログラミング言語Haskell Part25
■ このスレッドは過去ログ倉庫に格納されています
0661デフォルトの名無しさん
2014/05/11(日) 01:02:05.88ID:0nP30z2edata List a = Nil | Cons a (List a)
data Tree a = Prune | Leaf a | Branch (Tree a) (Tree a)
みたいなのをGADTなんかで書き直すと Cons とか Branch とかが「代数演算」
に見えるよね.(レベルが一個上がってるので,それを記述する適切な舞台は圏になるが)
んで,こういう再帰的な構造を代数演算だと思って見ると一般代数の議論が
適用できたりする.圏論は別名「一般代数の理論」で, List と Tree に共通な議論を
取り出せたりするわけ. List や Tree と Maybe の違いは再帰があるかどうかだけど
,List や Tree に共通な性質は,実際には原始再帰関数に似た議論でまとめられる.
そういう再帰スキームの一般論を利用した型の構成もできるらしい.ekmett が
やってるらしいけどめんどくさいから調べてないけど.
List も Tree も一回作れば一生ものだし,両者に共通の性質なんか知ったことかボケ
とかいう人もいるだろうしそれはそれで全く構わないのでございます.
■ このスレッドは過去ログ倉庫に格納されています