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


当前回答

很多人都提到了函数式语言。

除了Javascript,还有一些最常用的函数式语言。

Excel、SQL、XSLT、XQuery、J、K等应用于金融领域。

当然是Erlang。

所以我想说,从这个列表中,函数式编程技术每天都在主流中使用。

其他回答

函数式编程已经存在很长一段时间了,因为LISP是最早拥有编译器的语言之一,而且自从MIT的LISP机器问世以来。这不是一种新的范式(OO更新得多),但主流软件平台倾向于用易于转换为汇编语言的语言编写,它们的api非常倾向于命令式代码(UNIX使用C, Windows使用C, Macintosh使用Pascal和后来的C)。

我认为过去几年的新创新是api的多样性,尤其是在平台api无关紧要的web开发领域。因为你没有直接对Win32 API或POSIX API进行编码,这就给了人们尝试函数式语言的自由。

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

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

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

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

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

函数式编程将很可能成为工程师和科学家用来解决他们所面临的问题的工具。它不会像早期的语言那样占领世界。然而,最难打败的产品是Excel,如果我是一名工程师,需要做计算,Excel是很棒的。

However, F# is going to be another source and will likely fill design needs by the non-Computer Scientists. Let's face it, Computer Scientists have done a great job of creating a WHOLE new way of doing things. Object Oriented Programming is GREAT. But sometimes you just need a way to solve an equation, get a solution and graph it. That's it. Then a language like F# fills the bill. Or maybe you want to build a finite state machine, F# again could be one of the solutions, but then C could be a solution as well.

但是当涉及到并行处理时,Excel大放异彩,f#也会及时出现。但是要以友好的方式,F#= friendly。

哇,这是一个有趣的讨论。我对此有自己的看法:

FP使一些任务相对简单(与非FP语言相比)。 非FP语言已经开始从FP中汲取思想,所以我怀疑这种趋势会继续下去,我们将看到更多的合并,这将帮助人们更容易地过渡到FP。

函数式语言的一个关键特征是一类函数的概念。其思想是,您可以将函数作为参数传递给其他函数,并将它们作为值返回。

函数式编程包括编写不改变状态的代码。这样做的主要原因是,对函数的连续调用将产生相同的结果。您可以使用任何支持第一类函数的语言编写函数式代码,但有一些语言(如Haskell)不允许更改状态。事实上,你根本不应该产生任何副作用(比如打印文本)——这听起来可能完全没用。

相反,Haskell对IO: monads采用了不同的方法。这些对象包含解释器顶层要执行的所需IO操作。在其他任何层面上,它们都只是系统中的对象。

函数式编程有什么优点?函数式编程允许代码出现错误的可能性更小,因为每个组件都是完全隔离的。此外,使用递归和一级函数允许简单的正确性证明,这通常反映了代码的结构。