我现在正在与Haskell斗争。甚至,我对使用OOP的命令式语言有一些经验,但Haskell似乎与它们不同。我对Haskell进行了低估,并认为学习一门新语言对我来说不是问题。然而,花了整整一周的时间来处理许多新概念(类型类,仿函数,应用程序,幺半群,monad ......阅读这个learnyouahaskell的所有14章),我注意到它们让我很困惑,不知道如何用Haskell开始编写程序。一些专家说,掌握Haskell需要几个月的时间。但我只用了两个星期就完成了一个大项目。
1)所以我的第一个问题是如何学习Haskell
2)当我需要使用applicative functor时,以及何时需要使用monad?
3)我的项目是基于许多演示处理有向图:
我是一个非常Haskell的新手,所以不知道在Haskell中我可以从哪里开始使用有向图?你有什么建议吗?
答案 0 :(得分:3)
要回答你的第一个问题(如何学习Haskell),我会说你需要实际编写代码。听起来你读过了“了解你是一个哈斯克尔”的许多章节,但是他们让你们游泳了。走得慢一点,而且 - 更重要的是 - 通过输入和评估代码来跟进。你说你“不知道从哪里开始在Haskell中编写程序。”实际编写和执行示例的实践正是您需要了解代码如何工作以及从何处开始。
你可能还没有为第二个问题的答案做准备(何时使用Monad
以及何时使用Applicative
) - 通过LYAH工作,你肯定知道什么时候使用。
至于有针对性的图表,this is a good resource(亚马逊的评论不是很好,但我认为这是对Haskell中图形和抽象数据类型概念的一个很好的介绍)。
祝你好运 - 哈斯克尔非常值得挣扎!