Java 函数式编程与Haskell
我的背景是在Java 函数式编程与Haskell,java,haskell,functional-programming,Java,Haskell,Functional Programming,我的背景是在html/css/javascript/jQuery中编程1年,在Java的JSP服务中编程6个月。我在大学二年级,在第二年的最后一个学期,我没有通过我们学习Haskell的函数式编程课程(可能主要是因为我错过了90%的课程)。似乎在我的第二年,我也将有一个课程,在巫婆哈斯克尔参与,所以学习仅仅是基本的是不够的 我感兴趣的是: -面向对象编程与函数编程的区别 -对于使用Haskell进行函数编程的初学者,推荐哪本书(我似乎无法理解教授所写的内容) -我看完这本书后,到哪里去练习这门语
html/css/javascript/jQuery
中编程1年,在Java的JSP服务中编程6个月。我在大学二年级,在第二年的最后一个学期,我没有通过我们学习Haskell的函数式编程课程(可能主要是因为我错过了90%的课程)。似乎在我的第二年,我也将有一个课程,在巫婆哈斯克尔参与,所以学习仅仅是基本的是不够的
我感兴趣的是:
-面向对象编程与函数编程的区别
-对于使用Haskell进行函数编程的初学者,推荐哪本书(我似乎无法理解教授所写的内容)
-我看完这本书后,到哪里去练习这门语言
-我可以用Haskell做什么,不能用Java做什么
-我是否需要大量的数学知识来理解哈斯克尔(我的大学教授在他的课程中使用了大量与数学相关的知识)如果你错过了大部分讲座,那么我就没有多少同情心了。但我会尽力帮忙的
1:OOP和函数的区别:大问题。现在,我会尝试以开放的心态接近Haskell,而不是试图理解它与OOP的区别
2.“向你学习Haskell”和“真实世界Haskell”都可以在网上找到
3:完成书上的练习。然后看一下Project Euler中的练习
4:这两种语言都是通用语言,所以任何应用程序都可以用这两种语言编写。Haskell支持更高的类型安全性和更短的代码
5:没有,但是数学可以帮助你更深层次地理解它。我边走边学相关的数学。在维基百科上查找数学术语,不要操心太多。从开始。另外,看看jQuery库的设计,因为它的许多特性都是围绕函数式编程技术设计的
另外,我强烈建议你也花些时间温习一下你的英语技能。在我看来,编程至少和语言有关,也和数学有关。从你到目前为止的评论来看,我怀疑你对这两个问题的处理方法都有些马虎。这将是最难克服的事情。一般来说,编程系统是非常严格的,不管怎样,你都需要学会更精确地组织你的思想
面向对象编程与函数编程的区别
从您的背景来看,您可能对OOP了解不够,无法进行有用的比较。忘掉它,学习函数式编程本身
对于使用Haskell进行功能编程的初学者,推荐哪本书(我似乎无法理解教授所写的内容)
每个人都不断地提到你学哈斯克尔是有原因的
我看完这本书后,到哪里去练习这门语言
在你的电脑上?获取编译器,获取代码编辑器,开始编程。在实践中学习是最好的方法
我可以用Haskell做什么,不能用Java做什么
琐碎地说,没什么。最后,这两种语言都能做任何你想做的事情
再说一次,您没有花足够的时间与Java进行语言比较,因此只需学习Haskell本身
我需要很多数学来理解哈斯克尔吗(我的大学教授在他的课程中使用了很多数学相关的东西)
不是真的。尽管有一点离散数学和形式逻辑会有所帮助,但无论如何,这是你在任何CS程序中都应该得到的东西。我同意上面的观点-错过讲座是一件坏事,好的英语是一项很好的技能
- 当然-前面提到的
学习Haskell for great good
-就是开始学习的地方
- 是德国一个练习班的录音,但口语是英语(带德国口音)
- 您还应该注意的一件事是:,在学习haskell(imho)——一种可搜索的文档类型时,如果不是最大的一件事的话:
- 如果您搜索的是一个从列表末尾拉出的函数,但您不知道该函数的名称:
列出具有给定类型签名的所有函数-last
,这是您查找的函数,也是其中之一
- 另一件事——帮助我发展haskell技能的是——vim中的syntastic,一个语法检查器,它极大地加快了“编译-检查-运行”周期;还有
hlint
——一个linting工具,它使代码更具可读性——并向您展示添加到代码中的不必要的内容,我真的从这样整理代码中学到了很多东西
- 从IO开始,这里有一篇很棒的文章。这也是一个很好的介绍经验丰富的函数式程序员是如何思考的
- 对于高级的东西和了解单子,有一个单子阅读器,一个值得攻击的东西,我听说,特别是#13
如果您已经了解并喜欢Java,请查看,所有这些都可以在web上轻松搜索。国际海事组织是无价之宝。你在这里问了很多广泛的问题。你为什么不四处看看,如果有更具体的问题,再来问呢?尽管人们普遍认为,大多数教授都喜欢谈论他们教授的东西。所以,找个时间找你的教授(或给他发电子邮件)问这些问题。我相信他会给出非常令人满意的答案。如果你对课程准备不足(例如,你需要更多的数学经验),那么教授是发现这个问题的最佳人选info@Aly:如果你没有足够的时间去听大部分的讲座,你肯定没有足够的时间做所要求的学习。学习不仅仅是坐在房间里几分钟