我在这里看到很多关于函数式语言的讨论。为什么你要使用传统语言而不是传统语言呢?他们在哪些方面做得更好?他们更不擅长什么?理想的函数式编程应用程序是什么?
当前回答
除了其他答案之外,用纯函数术语来描述解决方案可以迫使人们更好地理解问题。相反,用函数式的思维方式会培养出更好的解决问题的能力。
*要么是因为功能范式更好,要么是因为它可以提供额外的攻击角度。
其他回答
我很难想象纯函数式语言会成为当今的通用语言,其中的原因我就不赘述了(因为它们是煽风点火的材料)。也就是说,无论哪种语言(如果允许的话),函数式编程都能带来好处。对我来说,更容易测试我的代码。我经常和数据库打交道……我倾向于:
编写一个函数来获取数据、操作数据并返回数据 编写一个非常简单的包装器,调用数据库,然后返回通过函数传递该数据的结果
这样做允许我为操作函数编写单元测试,而不需要创建模拟之类的东西。
我确实认为纯函数式语言非常有趣……我只是觉得对我来说重要的是我们能从他们身上学到什么,而不是我们能用他们做什么。
它已经在Hadoop中的Map/reduce中流行起来
如果一个人看不到其他艺术的价值,他就无法理解他所选择的艺术的完美和不完美。遵循规则只允许在技术上发展到一定程度,然后学生和艺术家必须学习更多,进一步探索。在学习战略艺术的同时,学习其他艺术也是有意义的。
谁没有通过观察别人的活动来更多地了解自己呢?要学剑,就要学吉他。要学商业,先学商业。只学习刀剑会使你心胸狭窄,不能向外成长。
——宫本武藏《五环之书》
一般的公司程序员,例如。 和我一起工作的大多数人都会 不懂它和大多数工作 环境不允许您编程 在这
不过,这只是时间问题。一般的公司程序员都在学习当前的大事。15年前,他们不懂面向对象编程。 如果FP流行起来,你的“普通公司程序员”也会跟上。
大学里并没有教过 (还是现在?)
变化很大。在我的大学里,SML是学生接触的第一门语言。 我相信麻省理工学院将LISP作为第一年的课程。当然,这两个例子可能不具有代表性,但我相信大多数大学至少提供了一些关于政策政策的选修课,即使他们没有将其作为课程的必修课。
大多数应用程序都很简单 可以用正常的面向对象方法解决
这并不是一个“足够简单”的问题。在FP中,解决方案会更简单(或更可读、更健壮、更优雅、更高效)吗?许多事情“简单到可以用Java解决”,但它仍然需要大量的代码。
无论如何,请记住,政策政策的支持者几十年来一直声称这是下一个大事件。也许他们是对的,但请记住,5年、10年或15年前他们做出同样的声明时,他们是不对的。
不过,有一件事肯定是对他们有利的,那就是最近,c#向FP的方向急转直下,在某种程度上,它实际上正在把一代程序员变成FP程序员,而他们甚至没有注意到。这可能会为计划生育“革命”铺平道路。也许吧。;)
为什么函数式编程很重要