最近やったことを振り返ってみると
- ランク2多相とかランクN多相を理解する
- Haskellの関数従属とは「ある型が決まれば別の型が一意に決まる」という依存関係のこと
- Haskellの一般化代数データ型(GADT)
- HaskellのType Familiesがわからんよ(改めわかった)
型推論のための知識ばかりじゃないかと。メタな知識がないとまともなコード書けないってことか、コード書くのには必要ない余計な知識を詰め込んだのか(多分前者だと思うけど)。
Haskell の型システムは2つの重要 な特性を発揮します。ひとつめは、正しく型付けされた式はいづれも唯一の主型 (これについては下で説明します)を持つことが保証されるということです。ふた つめはこの主型は自動的に推論できるものであるということです(§4.1.3)。Cのように単 態型を用いる言語と比較すると、多相性のある言語では表現力がアップしている のがわかると思います。型推論機構は、プログラマが型の問題で頭を悩ますこと を軽減してくれます。やさしい Haskell 入門 (バージョン 98 )
結局のところ、型推論機構の知識がないとプログラマが型の問題で頭を悩ますだけで、Haskellの型推論機構の恩恵を受けられないよってことじゃないのかな?と思うのだけど、なぜ入門書にそういう話題が含まれていないのだろうと思った。
あちこち探しまわって断片をかき集めてちょっとづつ理解していくのはちょっとしんどいかも。
僕は楽しかったけど。
Basic Category Theory for Computer Scientists (Foundations of Computing)
Benjamin C. Pierce
The MIT Press / 2302円 ( 1991-08-07 )
Benjamin C. Pierce
The MIT Press / 2302円 ( 1991-08-07 )