我在这里看到很多关于函数式语言的讨论。为什么你要使用传统语言而不是传统语言呢?他们在哪些方面做得更好?他们更不擅长什么?理想的函数式编程应用程序是什么?


当前回答

我很难想象纯函数式语言会成为当今的通用语言,其中的原因我就不赘述了(因为它们是煽风点火的材料)。也就是说,无论哪种语言(如果允许的话),函数式编程都能带来好处。对我来说,更容易测试我的代码。我经常和数据库打交道……我倾向于:

编写一个函数来获取数据、操作数据并返回数据 编写一个非常简单的包装器,调用数据库,然后返回通过函数传递该数据的结果

这样做允许我为操作函数编写单元测试,而不需要创建模拟之类的东西。

我确实认为纯函数式语言非常有趣……我只是觉得对我来说重要的是我们能从他们身上学到什么,而不是我们能用他们做什么。

其他回答

我没有看到任何人在这里提到房间里的大象,所以我认为这取决于我:)

JavaScript是一种函数式语言。随着越来越多的人使用JS做更高级的事情,特别是利用jQuery、Dojo和其他框架的优点,FP将通过web开发人员的后门引入。

与闭包结合使用,FP使JS代码非常轻便,但仍然可读。

欢呼, PS

FP无疑是下一个最佳范例。现在哪种语言可能是下一步,这是很难的东西,但我相信可能是Haskell, f#, Clojure, Ocaml或Erlang。或者是带有更多FP结构和更好的并行性/性能支持的Python,或者是带有parrot的Perl 6,看起来非常有趣。

我同意第一点,但是时代变了。公司会做出回应,即使他们是后期采用者,如果他们看到有一个优势。生活是动态的。

90年代末,他们在斯坦福教授哈斯凯尔和ML。我相信卡内基梅隆大学、麻省理工学院、斯坦福大学和其他一些好学校正在向学生们展示它。

我同意大多数“在网络上公开关系数据库”的应用程序将在很长一段时间内继续这样做。对于这个问题,Java EE、. net、RoR和PHP已经演化出了一些非常好的解决方案。

您发现了一些重要的问题:这可能是其他方法无法轻松解决的问题,而这些方法将促进函数式编程。那是什么?

大规模多核硬件和云计算会推动它们向前发展吗?

微软正在Visual Studio上大力推广f#的下一个版本。它是一种像Scala一样的混合语言,并且可以很好地与。net框架的其余部分集成。我认为许多微软公司将使用它来加速高度并行的数据处理应用程序和功能的开发。

我敢打赌,当你使用以下方法时,你并不知道你在进行函数式编程:

Excel公式 石英的作曲家 JavaScript Logo(海龟图形) LINQ SQL js(或Lodash), D3