Java 学习函数式编程

Java 学习函数式编程,java,functional-programming,Java,Functional Programming,我主要是一名Java开发人员,这是我最有经验的地方。我想提高我的编码技能,所以我正在学习函数式语言 我不希望这对我来说是一个太大的飞跃,我不想陷入太多不熟悉的事情中,我想尽快跟上进度 在我第一次认真研究函数式编程时,你能推荐一种语言/平台吗?Scala的设计考虑了Java和JVM。听起来是个不错的开始 是最著名的用Java启动函数式编程的库。如果您有时间阅读一本书,请尝试“高效Java”。这是一本非常适合开发人员的好书。试试Scala。它不是一种纯粹的函数式编程语言,但它正好适合您的工具箱。看

我主要是一名Java开发人员,这是我最有经验的地方。我想提高我的编码技能,所以我正在学习函数式语言

我不希望这对我来说是一个太大的飞跃,我不想陷入太多不熟悉的事情中,我想尽快跟上进度


在我第一次认真研究函数式编程时,你能推荐一种语言/平台吗?

Scala的设计考虑了Java和JVM。听起来是个不错的开始


是最著名的用Java启动函数式编程的库。

如果您有时间阅读一本书,请尝试“高效Java”。这是一本非常适合开发人员的好书。

试试Scala。它不是一种纯粹的函数式编程语言,但它正好适合您的工具箱。看


另一种选择可能是。这也不是纯粹的FP,但作为一种Lisp方言,它提供了许多相关功能。

有几种可能性。Scala在JVM上运行,所以您可以在很多方面使用Java库。我不是一个粉丝,它太复杂了,有很多语法需要学习

Scheme可以说是学习FP的最佳语言,因为您可以在30分钟内学习语法


你也可以看看混合语言,比如JavaScript,它也有函数语言的某些方面(最重要的是闭包),但保留了过程式的传统语法。

作为一个新的Java程序员,你最好看看Java领域的函数,像有效的Java、*Java的官方API*和许多其他的。顺便说一下,我喜欢Oreilly的书

由于您对学习函数式语言非常感兴趣,我建议您使用Ocaml(Objective Caml)。我可以向你推荐一本学习函数式编程和lambda微积分的好书

Benjamin C.Pierce的类型和编程语言。

老实说,正是视角的飞跃让学习函数式语言受益匪浅。我要说的是,用“最纯粹”的函数式语言深入研究


这些书和书都是很好的介绍

试试雪人吧。这是jvm上的高级ml方言

它是纯函数的,集成了nice和Java,是静态类型的,比ie scala简单得多。具有更简单的类型系统,但具有完整的类型推断


不是对原始问题的回答,但对于“深入研究”仍然是+1。另一个让人更容易理解函数式编程思想的伟大网站是“向你学习Haskell以获得更大的好处”:如果我发现Haskell有太大的飞跃,我会尝试scala:)谢谢!我同意这个答案。多年来,我一直在使用Bloch书中的思想,这导致我的Java代码在任何地方都强烈地使用不变性。这一想法极大地改变了我对函数式编程范式的思考。这大大缓解了我现在对Scala的学习。我认为,最终,Scheme比Scala更难学习,至少对我来说是这样。在第一次学习Scala时,尝试使用所有Scala当然很复杂。这是一种极其复杂和复杂的语言。然而,如果你只是在“不带分号的Java”模式下使用Scala,然后只需要少量的块来学习新的Scala增强功能,Scala一点也不复杂。事实上,对于一个熟练的Java开发人员来说,朝着实用(即不完美的)函数式编程实现小小的、可实现的飞跃几乎是完美的。