我在这里看到很多关于函数式语言的讨论。为什么你要使用传统语言而不是传统语言呢?他们在哪些方面做得更好?他们更不擅长什么?理想的函数式编程应用程序是什么?
当前回答
大学里并没有真正教授(或者现在有吗?)
我不知道现在的情况,但在90年代中期,我在计算机科学课程中学习了米兰达语言和Lisp语言。尽管从那以后没有使用纯函数语言,但它影响了我解决问题的方式。
大多数应用程序都足够简单,可以用正常的面向对象方法解决
在90年代中期的CS课程中,面向对象(使用Eiffel教授)的教学与函数式编程相当。两者在当时都是非主流的。面向对象现在可能是“正常”的,但过去并非如此。
我很有兴趣看看f#是否是将FP推向主流的东西。
其他回答
呃,很抱歉,我是一个学究,但它已经流行起来了——我们称之为Excel。
http://research.microsoft.com/en-us/um/people/simonpj/papers/excel/
在计算机上运行的绝大多数程序都是用Excel或其众多流行克隆版本之一编写的。
(有许多程序运行多次,而用Excel编写的程序往往不是其中之一-大多数Excel程序都有1个运行实例)
即使您从未专业地使用过函数式语言,了解函数式编程也会使您成为更好的开发人员。它会给你一个新的视角来看待你的代码和编程。
我认为没有理由不去学习它。
我认为能够很好地混合函数式和命令式风格的语言是最有趣的,也是最有可能成功的。
我的观点是,既然微软已经把它推向了主流,它就会流行起来。对我来说,它很有吸引力,因为它能为我们做什么,因为它是一个新的挑战,因为它为未来提供了工作机会。
一旦掌握了它,它将成为进一步帮助我们提高编程效率的另一个工具。
事情朝着功能性的方向发展已经有一段时间了。过去几年的两个很酷的新孩子,Ruby和Python,都比之前的函数语言更接近——以至于一些Lispers开始支持其中一个或另一个,认为“足够接近”。
随着大规模并行硬件给每个人带来了进化的压力——函数式语言是应对这些变化的最佳位置——认为Haskell或f#将成为下一个大事件的飞跃并不像以前那么遥远。
一般的公司程序员,例如。 和我一起工作的大多数人都会 不懂它和大多数工作 环境不允许您编程 在这
不过,这只是时间问题。一般的公司程序员都在学习当前的大事。15年前,他们不懂面向对象编程。 如果FP流行起来,你的“普通公司程序员”也会跟上。
大学里并没有教过 (还是现在?)
变化很大。在我的大学里,SML是学生接触的第一门语言。 我相信麻省理工学院将LISP作为第一年的课程。当然,这两个例子可能不具有代表性,但我相信大多数大学至少提供了一些关于政策政策的选修课,即使他们没有将其作为课程的必修课。
大多数应用程序都很简单 可以用正常的面向对象方法解决
这并不是一个“足够简单”的问题。在FP中,解决方案会更简单(或更可读、更健壮、更优雅、更高效)吗?许多事情“简单到可以用Java解决”,但它仍然需要大量的代码。
无论如何,请记住,政策政策的支持者几十年来一直声称这是下一个大事件。也许他们是对的,但请记住,5年、10年或15年前他们做出同样的声明时,他们是不对的。
不过,有一件事肯定是对他们有利的,那就是最近,c#向FP的方向急转直下,在某种程度上,它实际上正在把一代程序员变成FP程序员,而他们甚至没有注意到。这可能会为计划生育“革命”铺平道路。也许吧。;)