2011-09-13 93 views
-2

我来自html/css/javascript/jQuery的1年编程和6个月的Java's JSP Servelets的背景。我在大学第二年,第二年的最后一学期我没有通过功能编程课程我们正在学习哈斯克尔(也许主要是因为我掌握了90%的分数)。似乎在我的第二年,我还将参加哈斯克尔女巫课程,因此学习基础知识不够。函数式编程和Haskell

我所感兴趣的是:OOP编程和编程功能之间

建议初学者 - 什么书使用哈斯克尔功能编程

-the差别(我似乎无法使头部或尾部什么样的教授写)

-where去练习语言,我的书

- 什么我能和Haskell和不能做做在Java中

完成后,

待办事宜我需要很多数学的理解哈斯克尔(我的大学教授,在使用过程中HES大量的数学相关的东西)

+4

http://stackoverflow.com/questions/16918/beginners-guide-to-haskell –

+1

所有这一切都是在网络上搜索平凡。国际海事组织[学习你一个好的Haskell](http://learnyouahaskell.com/)是无价的。 –

+3

你在这里问了很多广泛的问题。你为什么不看看[haskell.org](http://haskell.org/),如果你有任何问题,回来更具体的问题? – hammar

回答

5

的个体差异beetween OOP编程和编程功能

从你的背景,你可能不知道有足够的了解OOP的比较是有用的。忘记它吧,并且自己学习函数式编程。

什么书recomended在使用哈斯克尔功能编程一个beginer(我似乎无法做出的PROFESOR写什么heade或故事)

其他人不断提的了解你是有原因的一个Haskell 。 :]

哪里去练习语言,我的书

在您的计算机完成后?获取编译器,获取代码编辑器,开始编程。边做边学是最好的方法。

我能与Haskell和不能做做在Java中

中平凡,没有什么。两种语言都可以做任何你可能想做的事情,最终。

而且,您还没有花费足够的时间用Java来比较语言,因此无论如何只需要学习Haskell。

,我需要很多数学的理解哈斯克尔(我coledge PROFESOR用于HES当然很多数学相关的东西)

不是真的。尽管如此,一些离散数学和形式逻辑仍然有帮助,但这就是你在任何CS程序中都应该获得的东西。

4

如果你错过了大部分的讲座,然后我没有很多的同情。但我会尽力帮忙。

1:OOP和Functional的区别:大问题。就目前而言,我会试着用开放的态度来对待Haskell,而不是试图根据与OOP的区别来理解它。

2:“了解你一个Haskell”和“真实世界Haskell”都可以在网上找到。

3:通过书中的练习。然后看看欧拉工程中的练习。

4:两者都是通用语言,所以任何应用程序都可以同时写入。 Haskell实现更高的类型安全性和更短的代码。

5:不,但数学可以帮助您更深层次地理解它。我一边走,一边拿起相关数学。查看维基百科上的数学术语,不要过多地冒汗。

+0

当你工作时,你没有很多时间来参加所有的课程,但thanx的信息 – Aly

+3

减少课程? –

+2

@Aly:如果你没有足够的时间去参加大多数的讲座,你肯定没有足够的时间来完成所需的学习。除了每周坐几次房间,然后希望获得及格分数以外,还有更多的要学习。 –

3

Learn You a Haskell for Great Good开始。另外,请看jQuery库的设计,因为它的许多功能都是围绕函数式编程技术设计的。

此外,我强烈建议你花些时间来提高你的英语水平。在我看来,编程对语言来说至少与数学有关。从你的评论到目前为止,我怀疑你们对待两者的方法有些草率。这将是最难克服的问题。作为一般规则,编程系统非常严格,无论如何,您需要学习如何更精确地组织自己的想法。

1

我同意上面的意见 - 缺少讲座是一件坏事,良好的英语是一个很好的技能。

  • 当然 - 已经提到的Learn you a Haskell for great good - 是开始的位置。
  • Here是德国运动班的录音,但口语是英语(带有德语口音)。
  • 还有一件事,你还应该知道的是:Hoogle,一个如果不是最大的事情,当谈到学习哈斯克尔(恕我直言) - 一种可搜索的文件:
    • ,如果你搜索功能拉出列表的末尾 - 但您不知道名称:
      hoogle: [a]-> a 列出了具有给定类型签名的所有函数 - last,它是您查找的函数,就是其中之一。
  • 另一件事 - 帮助我发展我的Haskell技能就是 - syntastic在vim,语法检查器,它加快了“编译 - 检查 - 运行”的巨量型单循环起来,hlint - 一个掉毛的工具,这使得代码更加可读 - 并且向你展示了你添加到代码中的不必要的东西,我真的学会了用这种方式来修改代码的东西。
  • 以IO开头 - 有this伟大的文章。这也是经验丰富的功能程序员思考的一个很好的介绍。
  • 而对于先进的东西,并认识单子有Monad读者recent stuff,older stuff值得攻击,我听说,特别是#13。

如果你已经知道,并如Java看看Clojure