学习Haskell以学习Scala

我已经阅读了一些问题,例如斯卡拉vs哈斯克尔讨论两种语言的优点或学习,但我已经知道我想学习斯卡拉。 我是uni的Java程序员,现在主要使用PHP。

我想学习Scala,因为它看起来像个人项目的Java改进,我也想学习一个函数式语言来提高我作为程序员的知识。

我想知道是否将Haskell作为函数式编程的入门知识是一个好主意,因为它是纯粹的function性的,所以我会正确地学习它,而不是在Scala中使用一些函数,而不知道为什么?

我也想使用Haskell作为个人项目等,因为它看起来不错,但我真的没有看到它的许多真实世界的应用程序,似乎更多地用于学术的东西,因此想学习它获得function的理解,然后继续前进斯卡拉。

作为一个来自Java的人,并且斯卡拉是Haskell的门户药物,我碰巧认为这是一个好主意(首先学习Haskell)!

Haskell在概念上比Scala简单得多,如果你的目标是学习如何在function上进行编程,那么如果你从Haskell开始的话,你不能不这样做。 通过devise,Scala支持一种编码的“传统模式”,在这种模式下,如果你不想改变你的Java(或者PHP)习惯,你不需要太多改变。 我认为这是一个战略决策,而且是一个很好的决定!

但那不是你! 你真的有兴趣学习新的东西…为什么不全力以赴? 在纯粹的环境中学习函数式编程,没有混乱和诱惑回归旧习惯,将会使你的大脑中的概念明确化。

然后通过一切手段回到斯卡拉,并了解它与Haskell的区别。 它在某些方面比较弱,在其他方面则比较强,但是你们将会更好地理解这些差异。

我从Java背景来到Scala。 最初我只是把Scala作为一个更好的Java。 随着时间的推移,我开始在Scala中使用越来越多的function概念。 最终我达到了一个我觉得我需要更全面的function编程理解的地步。 正是在这个时候,我走开了,并学习了Haskell。

当我回溯到Scala时,我发现使用function性风格要容易得多,而且我之前与之奋斗的一些概念变得更有意义。

您不必学习Haskell成为一名优秀的Scala开发人员,但是我认为一旦您在Scala中达到一定的水平,对function编程概念有更深入的理解确实有帮助。

我不会这样做的。 如果你直接去斯卡拉(你的最终目标),你可以节省时间。 您将学习函数式编程,但是由于Scala“不那么纯粹”,您将能够开始在Scala中编写程序,使用一些类似Java的构造,这将使转换变得更简单。

即使你进入Haskell,你的第一个程序的function质量也不会比后面的要高,因为只有这样做才能改善这个function。 开始Scala你的第一个程序将是“质量较差”,因为你在Java或PHP的第一个程序是,但通过练习,你会改善。 花时间在无关的任务,希望他们可以帮助,这可能会导致你浪费时间。

专注于你的目标。 如果这是斯卡拉,去吧。

更新:我相信这可能与这个问题有关。 它提高了生产力(交付软件)与寻求“纯粹知识”的关键点。

从Scala直接启动,而不是先玩过任何纯粹的函数式编程语言的风险是,你可能会被过于频繁地吸引到程序化的解决scheme。

但是我不会尝试Haskell作为函数式编程的介绍:不是特别困难 – 它的语法非常简洁 – 但它绝对是非常奇特的(即使在函数式编程的奇特世界中),我认为你应该尝试您可以更轻松地将语言移植到Scala,比如Racket或简单的Scheme。

为了更好地理解我的意思,请查看Haskell,Scala和Scheme中的列表parsing。

我先学习了Haskell,然后学习了Scala,从不后悔。 如果你首先学习Haskell,你将获得更多的FP的更多的赞赏。 你对FP背后的概念以及为什么它们很重要的理解将会被淹没。斯卡拉大部分来自Haskell(恕我直言)。 当你拥有Haskell背景时,它会更有意义。 不要害羞! 你的努力将得到回报。

对我来说,我想学习Scala和函数式编程; 简而言之,我正在学习Scala。 我的学习材料是Programming Scala 。 在阅读过有关syntx和东西的早期章节之后,我跳过了章节,介绍了面向对象的东西,并跳到了涵盖function性编程东西的第8章。 在那里,我让自己与FP斗争。

我读了这个以FP方式编写的scala代码并对其进行分析。 你想学习Scala“…对个人项目的Java改进”。 和Haskell for FP介绍。 所以,看起来首先,你想要在你的java项目上有效率,然后抓住FP作为一个副作用。 为了生产,你必须掌握语言。 学习和掌握语言有很多,掌握语言的唯一方法就是你必须用这种语言编写代码。 当你学习/使用Scala时,即使你想要FP也不能避免。 我一直在阅读斯卡拉博客(这本书),作者总是在FP概念方面做出解释。 你不必担心没有通过斯卡拉路线抓住FP。 是的,当你正在学习Scala时,你可以像Haskell那样从中获得灵感。 或者正如上面的Chris Turner指出的那样,当你已经在Scala上工作的时候,你可以钻研更多的FP。

你想去点A,为什么不直接去点A呢? 如果你通过B点(Haskell)的路线,你将不得不推迟你的生产力, 佩雷Villega提到。