首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >学习Haskell以学习Scala

学习Haskell以学习Scala
EN

Stack Overflow用户
提问于 2011-09-29 16:16:07
回答 6查看 4.1K关注 0票数 45

我读过一些问题,比如Scala与Haskell讨论两种语言的优点或学习哪种语言,但我已经知道我想学习Scala。我曾是uni的一名Java程序员,现在主要使用PHP。

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

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

我也喜欢将Haskell用于个人项目等,因为它看起来很棒,但我并没有真正看到它在现实世界中的应用,似乎更多的是用于学术方面的东西,因此我想学习它以获得对函数的理解,然后转向Scala。

EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2011-09-29 16:38:59

作为一个来自Java的人,对他来说Scala是Haskell的入门良药,我碰巧认为这是一个伟大的想法(先学习Haskell )!

从概念上讲,Haskell是一种比Scala简单得多的语言,如果您的目标是学习如何进行函数式编程,那么如果您从Haskell开始,您就会情不自禁地这样做。从设计上讲,Scala支持一种“遗留模式”的编码,在这种模式下,如果您不想更改太多Java (或PHP)习惯,也不必进行太多更改。我认为这是一个战略决策--而且是一个很好的决策!--意在增加顽固的Java拥护者的采用率。

但那不是你!你实际上对学习新东西很感兴趣。那么为什么不全力以赴呢?在纯粹的环境中学习函数式编程,没有杂乱和退回到旧习惯的诱惑,将在您的大脑中明确概念。

然后一定要回到Scala,学习它与Haskell的不同之处;它在某些方面较弱,在其他方面较强,但这样您就可以在更好的基础上欣赏这些差异。

票数 86
EN

Stack Overflow用户

发布于 2011-09-29 16:23:03

我是不会做那种事儿的。如果你直接使用Scala (你的最终目标),你就节省了时间。您无论如何都会学习函数式编程,但由于Scala“不那么纯粹”,您将能够开始使用Scala编写程序,并使用一些类似Java的结构,这将使过渡变得更简单。

即使你进入Haskell,你的第一个程序的“功能质量”也会低于后来的程序,因为只有实践才能改善这一点。启动Scala后,您的第一个程序将与使用Java或PHP编写的第一个程序一样“质量较差”,但随着实践的进行,您会有所提高。把时间花在不相关的任务上,希望它们能有所帮助,这可能会导致你浪费时间。

专注于你的目标。如果这是Scala,那就去做吧。

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

票数 17
EN

Stack Overflow用户

发布于 2011-09-29 16:46:13

我是从Java背景来到Scala的。最初,我只是把Scala作为更好的Java来关注。随着时间的推移,我开始在Scala中使用越来越多的函数概念。最终,我觉得我需要对函数式编程有一个更纯粹的理解。正是在这一点上,我离开并学习了Haskell。

当我回到Scala时,我发现使用函数式风格要容易得多,我之前遇到的一些概念也变得更有意义了。

你不需要学习Haskell就能成为一名优秀的Scala开发人员,但我认为一旦你对Scala有了一定的了解,对函数式编程概念的深入理解就会非常有帮助。

票数 17
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7594337

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档