Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/107.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 函数式编程与Haskell_Java_Haskell_Functional Programming - Fatal编程技术网

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:如果你没有足够的时间去听大部分的讲座,你肯定没有足够的时间做所要求的学习。学习不仅仅是坐在房间里几分钟