这几天来,我一直在思考Haskell中的函数式编程范例。我通过阅读教程和观看视频来做到这一点,但似乎没有什么能真正坚持下来。 现在,在学习各种命令式/面向对象语言(如C、Java、PHP)时,练习对我来说是一种很好的方式。但是因为我不知道Haskell有什么能力,而且有很多新概念可以利用,所以我不知道从哪里开始。
你是怎么学会哈斯克尔的?是什么让你真正“打破僵局”的?还有,开始练习有什么好主意吗?
这几天来,我一直在思考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
其他回答
这里有一本好书,你可以在线阅读:Real World Haskell
我所做的大多数Haskell程序都是用来解决Project Euler问题的。
不久前我读到的一条建议是,你应该有一套你知道如何解决(理论上)的简单问题的标准集,然后每当你试图学习一种新语言时,你就用这种语言实现这些问题。
这些是我最喜欢的
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/
如果您只有命令式/OO语言的经验,我建议使用更传统的函数式语言作为垫脚石。Haskell是非常不同的,你必须理解很多不同的概念。我建议先使用ml风格的语言(比如f#)。