这几天来,我一直在思考Haskell中的函数式编程范例。我通过阅读教程和观看视频来做到这一点,但似乎没有什么能真正坚持下来。 现在,在学习各种命令式/面向对象语言(如C、Java、PHP)时,练习对我来说是一种很好的方式。但是因为我不知道Haskell有什么能力,而且有很多新概念可以利用,所以我不知道从哪里开始。

你是怎么学会哈斯克尔的?是什么让你真正“打破僵局”的?还有,开始练习有什么好主意吗?


当前回答

这些是我最喜欢的

Haskell:类型函数式编程

Joeri van Eekelen, et al. | Wikibooks
       Published in 2012, 597 pages

真实世界Haskell

   B. O'Sullivan, J. Goerzen, D. Stewart | OReilly Media, Inc.
   Published in 2008, 710 pages

其他回答

我很喜欢看这个用Haskell进行函数式编程的13集系列。

C9讲座:Erik Meijer博士-函数式编程基础: http://channel9.msdn.com/shows/Going+Deep/Lecture-Series-Erik-Meijer-Functional-Programming-Fundamentals-Chapter-1/

我建议你首先从阅读BONUS教程开始,然后阅读Real World Haskell(在线免费)。加入#Haskell IRC频道,在irc.freenode.com上,并提出问题。这些人对新手都很友好,而且在过去的时间里帮了我很多。此外,在这里,在SO是一个伟大的地方,以获得帮助,你不能掌握的东西!试着不要气馁,一旦成功,你的想法就会被震撼。

奖金'教程将为您准备,并让您为真实世界哈斯克尔带来的惊险刺激做好准备。祝你好运!

我的一些同事有很好的学习Haskell的经验!

教程针对的人谁有 命令式编程经验 语言,但还没有编程 函数式语言之前。

在这里也检查一下答案

Graham Hutton的《Programming in Haskell》简明扼要,相当透彻,而且他多年的Haskell教学经验也很好地说明了这一点。这几乎总是我建议人们开始的时候,不管你从哪里开始。

特别是,第8章(“函数解析器”)提供了你需要开始处理单子的真正基础知识,我认为这是目前为止最好的开始,其次是关于单子的所有内容。(不过,关于那一章,请注意网站上的勘误表:如果没有一些特殊帮助,你不能使用do表单。你可能想先了解一下类型类,然后自己解决这个问题。)

Haskell初学者很少会强调这一点,但它值得尽早学习,不仅是使用单子,而且是构造自己的单子。这并不难,定制的可以使许多任务变得更加简单。

这里有一本好书,你可以在线阅读:Real World Haskell

我所做的大多数Haskell程序都是用来解决Project Euler问题的。

不久前我读到的一条建议是,你应该有一套你知道如何解决(理论上)的简单问题的标准集,然后每当你试图学习一种新语言时,你就用这种语言实现这些问题。