你花了多少时间才能掌握Haskell?

我知道这个问题可能听起来很愚蠢,但我正在学习(至少尝试)Haskell大约4天。 我已经完成了http://learnyouahaskell.com/的阅读,现在我正在投入时间:Haskell逻辑,数学和编程之路,对我来说事情变得非常复杂。 我在函数式编程方面没有经验,只是一些关于Lisp的基础知识。

尽管我理解了这些概念,但是当我不得不写一些基本的代码时,总会有一片黑暗,我无法制定一个计划。 似乎有很多方法可以完成某项任务,但我无法表达自己。

经过4天的python,我可以编写复杂的脚本(不是'pythonic',但他们确实有效)。 在哈斯克尔工作4天后,我几乎是空白的。

有关如何提高我的功能技能的任何建议? 需要多长时间才能完全掌握Haskell?


大约2年后,Haskell的一些部分我很清楚(Ptr的东西,矢量库),我知道的一些区域只是危险的(模板haskell),还有一些我没有碰过(web框架,泛型)。 总体而言,我认为我很了解这门语言。

学习Haskell的一大难题是(非常陡峭的IMO)学习曲线。 有很多不同的相互关联的东西需要学习,然后才能在语言中发挥作用,并且因为它们相互关联,所以很难在没有至少几个月的经验的情况下获得良好的感觉。 我的建议是坚持下去,如果你认为你不明白某些事情,或者发生了更深层的事情,那么你可能是对的。 如果你现在无法弄清楚,那就在一个月左右的时间内继续前进。 最终你会在多个方面取得足够的进展,一切都应该变得清晰。

像任何语言一样,取得进展的最佳方式是编写代码。 这将花费更长的时间,因为Haskell远离您已知的语言,但这将是值得的。


那么在2年后,我仍然没有完全掌握关于Haskell的一切。 我可以编写“高级”程序(在开始学习Haskell大约2-3个月后),但人们不断想出新的东西来学习,这是Haskell乐趣的一部分:)

至于如何最好地学习,我总是喜欢边干边学。 在Hackage上浏览你感兴趣的代码(不要太大),然后尝试自己实现一些类似的东西(或子集)。 选择一个项目,你可以随着时间的推移不断添加更多的difficut层。


在大学进行了150小时的函数式编程课程后,我们做到了

  • 排序功能
  • 制作二叉树的
  • 使用/书写功能,如地图,过滤器,邮编
  • ..可能已经忘记了一些东西
  • 所以我只是说基本知识,大约一个月全职。 四天没什么......我认为你只需要编写更多的代码来习惯功能性编程思维方式。 从底部到顶部实施一切,在获得经验的同时做更难的事情。

    链接地址: http://www.djcxy.com/p/80789.html

    上一篇: How much time have you invested in order to have a good grasp on Haskell?

    下一篇: Why sum x y is of type (Num a) => a