以下是我在“掌握”monads的诀窍后发现的一些有用的资源:
- 正如SuperBloup所指出的,Brent Yorgey的Typeclassopedia是不可或缺的(事实上,它确实涵盖了Real World Haskell中大量可以被认为是“monad之后”的伟大东西:应用程序解析、monad转换器和STM,例如,
- John Hughes的"Generalizing Monads to Arrows"是一个很好的资源,它教会了我关于monads和箭头的同样多的知识(尽管当我读到它的时候,我认为我已经理解了monads )。
- "Yampa Arcade"论文是一篇很好的介绍Functional Reactive monads类型家族的文章:我发现使用它们比阅读关于它们的知识更容易。vector-space包是一个开始的地方,或者您可以查看Oleg Kiselyov和Ken Shan的代码Chris Okasaki的Purely Functional Data Structures的几个章节,并在Haskell.
- Read Smullyan的Functional Pearl on zippers是一个奇妙的组合逻辑介绍,它将改变您编写detail.
- Raymond Gérard To Mock a Mockingbird的Functional Pearl on zippers的方式。代码是OCaml的,但在阅读这样的论文时,能够在头脑中将OCaml转换为Haskell是很有用的(而且不是太难)。
最重要的是,深入研究您发现自己正在使用的任何Hackage库的代码。如果他们在做一些你不理解的语法、习惯用法或扩展,可以查一下。