jaz*_*090 42 haskell functional-programming scala purely-functional
我读了几个问题,比如Scala和Haskell讨论两种语言的优点或者要学习哪些,但我已经知道我想学习Scala.我是uni的Java程序员,现在主要使用PHP.
我想学习Scala,因为它看起来像个人项目的Java改进,我也想学习一种函数式语言来提高我作为程序员的知识.
我想知道将Haskell作为函数式编程的介绍是否是一个好主意,因为它纯粹是函数式的,所以我应该正确地学习它而不是偶然使用Scala中的一些函数而不知道为什么?
我也喜欢将Haskell用于个人项目等,因为它看起来很棒,但我并没有真正看到它的许多真实应用,似乎更多地用于学术事物,因此想要学习它以获得功能性理解然后继续斯卡拉
Tom*_*ett 85
作为一个来自Java的人,以及Scala是Haskell的门户药物,我碰巧认为这是一个好主意(首先学习Haskell)!
Haskell在概念上是一种比Scala更简单的语言,如果你的目标是学习如何在功能上进行编程,那么如果你从Haskell开始,你就会情不自禁.根据设计,Scala支持一种编码的"遗留模式",如果你不愿意,你不需要过多地改变你的Java(或PHP)习惯.我认为这是一个战略决策 - 而且是一个好的决定! - 旨在提高Java风暴家伙的使用率.
但那不是你!你真的对学习新东西感兴趣 ...那么为什么不全力以赴呢?在纯粹的环境中学习函数式编程,没有杂乱和回归旧习惯的诱惑,将会使大脑中的概念变得明确.
然后通过各种方式返回Scala并了解它与Haskell的区别; 它在某些方面都较弱,而在其他方面则更强,但你会更好地了解这些差异.
Per*_*ega 17
我不会这样做.如果你直接去Scala(你的最终目标),你可以节省时间.无论如何你都将学习函数式编程,但由于Scala"不那么纯粹",你将能够开始在Scala中编写程序,使用类似Java的结构,这将使转换更简单.
即使你进入Haskell,你的第一个程序将比以后的程序具有更少的"功能质量",因为只有练习才能改进.启动Scala你的第一个程序将是"质量较差",因为你的第一个Java或PHP程序,但通过练习,你将得到改善.把时间花在不相关的任务上希望它们可以提供帮助,这可能会导致你浪费那段时间.
专注于你的目标.如果那是Scala,那就去吧.
更新:我认为这可能与这个问题有关.它提出了生产力(交付软件)与寻求"纯粹知识"的观点.
Chr*_*ner 17
我从Java背景来到Scala.最初我只关注Scala作为更好的Java.随着时间的推移,我开始在Scala中使用越来越多的功能概念.最终,我觉得我需要对函数式编程有更纯粹的理解.就在这时,我离开了,学习了Haskell.
当我回到Scala时,我发现使用功能样式更加容易,而且我之前努力解决的一些概念更有意义.
您不必学习Haskell成为一名优秀的Scala开发人员,但我认为一旦您在Scala达到某个级别,对函数式编程概念有了更深入的了解,这确实有帮助.
直接从Scala开始而没有首先使用任何纯函数式编程语言的风险是,您可能会经常被程序解决方案所吸引.
我不会尝试Haskell作为函数式编程的介绍:不是说它特别难 - 它的语法非常简洁 - 但它绝对是非常奇特的(即使在函数式编程的特殊世界中)我觉得你应该尝试一下您可以更轻松地将语言移植到Scala,例如Racket或plain Scheme.
为了更好地理解我的意思,请查看Haskell,Scala和Scheme中的列表推导.