单子之后学习Haskell的下一步是什么? [英] What's the next step to learning Haskell after monads?

查看:150
本文介绍了单子之后学习Haskell的下一步是什么?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我一直在逐渐学习Haskell,甚至觉得我有一堆monad。然而,我仍然有很多很难理解的奇特东西,比如Arrows,Applicative等等。虽然我从Haskell代码中汲取了一些我见过的东西,但最好找到一个真正解释的教程他们完全。 (好像有几十个关于单子的教程......但是一切似乎都是在这之后完成的!)

这里有一个在获得monad之后,我发现了一些有用的资源:


  • 正如SuperBloup指出的那样,Brent Yorgey的 Typeclassopedia 是必不可少的(事实上它包含箭头)。
  • >
  • 真实世界哈斯克尔中有很多很棒的东西,可以被视为之后monad:例如,应用性解析,monad变换器和STM。
  • John Hughes的将单子推广到箭头是一个很好的资源,它教给我的单子和它有关的箭头一样多(尽管我认为我已经理解了monads en我读过它)。
  • Yampa Arcade是一篇功能反应式编程的好介绍。

  • 在类型系列上:他们比阅读他们更容易。 向量空间包是一个开始的地方,或者您可以查看代码Oleg Kiselyov和Ken Shan的关于Haskell和自然语言语义的课程

  • 选择Chris Okasaki的 Purely Functional Data Structures 并详细介绍它们。

  • Raymond Smullyan的模仿一只模仿鸟是一个非常容易理解的组合逻辑的介绍,它将改变您编写Haskell的方式。 阅读GérardHuet的拉链上的功能性珍珠。代码是OCaml,但是在处理像这样的文件时,能够将OCaml翻译成Haskell是有用的(也不是太困难)。



最重要的是,深入了解您使用的任何Hackage库的代码。如果他们正在做某些你不明白的语法或成语或扩展名,请查看它。


I've been gradually learning Haskell, and even feel like I've got a hang of monads. However, there's still a lot of more exotic stuff that I barely understand, like Arrows, Applicative, etc. Although I'm picking up bits and pieces from Haskell code I've seen, it would be good to find a tutorial that really explains them wholly. (There seem to be dozens of tutorials on monads.. but everything seems to finish straight after that!)

解决方案

Here are a few of the resources that I've found useful after "getting the hang of" monads:

  • As SuperBloup noted, Brent Yorgey's Typeclassopedia is indispensable (and it does in fact cover arrows).
  • There's a ton of great stuff in Real World Haskell that could be considered "after monads": applicative parsing, monad transformers, and STM, for example.
  • John Hughes's "Generalizing Monads to Arrows" is a great resource that taught me as much about monads as it did about arrows (even though I thought that I already understood monads when I read it).
  • The "Yampa Arcade" paper is a good introduction to Functional Reactive Programming.
  • On type families: I've found working with them easier than reading about them. The vector-space package is one place to start, or you could look at the code from Oleg Kiselyov and Ken Shan's course on Haskell and natural language semantics.
  • Pick a couple of chapters of Chris Okasaki's Purely Functional Data Structures and work through them in detail.
  • Raymond Smullyan's To Mock a Mockingbird is a fantastically accessible introduction to combinatory logic that will change the way you write Haskell.
  • Read Gérard Huet's Functional Pearl on zippers. The code is OCaml, but it's useful (and not too difficult) to be able to translate OCaml to Haskell in your head when working through papers like this.

Most importantly, dig into the code of any Hackage libraries you find yourself using. If they're doing something with syntax or idioms or extensions that you don't understand, look it up.

这篇关于单子之后学习Haskell的下一步是什么?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆