いいえ、Haskellを理解するためにカテゴリー理論に関する本を手に取る必要はありません。
私はHaskellを数年間使用しており、好奇心からいくつかのカテゴリー理論を採用しましたが、それは実際には必要ありません。一方で、それのクールは、これらすべての抽象化は、「全体像」の中に収まるかを確認するために、私はおやっ私のああ、私はちょうどこのからprofunctorようにする必要があり、」行かなかったMaybe
のカテゴリ[]
秒、その後、私は保存することができます王女!"。
ここで、Haskell型理論を使って何をしているのかに依存します。
Haskellを学んでいるだけなら、型システムのあらゆるニュアンスを理解しようとしないでください。しないでください、それは最初にC ++テンプレートのメタプログラミングを学ぼうとするようなものです。ファンシータイプは優れたツールですが、関数型プログラミングを十分に理解することは、予測できない多態性を理解することに勝ります。
ここで、Haskellの1〜2年後に、Haskellの型システムがどのように機能するかを微妙に理解しようとしているとしましょう。そうであれば、いくつかの型理論が役立つかもしれません。
これは、物事がどのように機能するかの背後にあるロジックのいくつかを理解するのに役立ちます。また、率直に言って、注目に値するコンピュータサイエンスIMOの本当にクールなブランチです。あなたが興味のある部分をチェリーピックしても、それでもまともな量を学ぶことができます。
Haskellの場合、STLC、HMタイプシステム(システムF)、そしておそらくラムダキューブ(HaskellはシステムFw iirc)とiso-recursiveタイプを調べます。型とプログラミング言語は、開始するための優れたリソースであり、これらすべてをカバーしています。
あなたが本当に冷たい援助を飲みたくて、あなたが新進のタイプの理論家であることに気づいたら、AgdaかCoqで突いてください。これらは「依存型」を特徴としており、ラムダキューブではHaskellよりも一歩進んでいます。依存型は、型を用語に依存させます。これは、型が実際に定理を証明するのに十分強力であることを意味します。好奇心旺盛な人にとっては、グーグルの「カレーハワード同型」は興味深い結果をもたらすはずです。