首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >什么时候使用函数式编程语言?

什么时候使用函数式编程语言?
EN

Stack Overflow用户
提问于 2008-12-29 10:07:14
回答 9查看 55.9K关注 0票数 97

在哪些情况下,我应该选择使用函数式编程语言,而不是更冗长的面向对象语言,如C++、C#或Java?

我明白什么是函数式编程,我不太明白的是,对于什么类型的问题,函数式编程是完美的解决方案吗?

EN

回答 9

Stack Overflow用户

回答已采纳

发布于 2008-12-29 10:20:20

在我看来,函数式语言主要用于两件事:游戏人工智能和数学计算。它在游戏人工智能中很好用,因为它有很好的列表操作(至少在Lisp和Scheme中是这样),而且由于它的语法,它还适用于数学计算。Scheme、Lisp和Haskell都有一种语法,使得数学计算易于阅读。我要补充的最后一点是,函数式语言是非常有趣的语言。我的计划课程是我玩得最开心的课程之一。

票数 51
EN

Stack Overflow用户

发布于 2008-12-29 20:17:54

我自己对此做了一些研究,我想我可能会将并发性添加到使用函数式语言的原因列表中。看,在不久的将来的某个时候,使用相同的cpu技术将无法提高处理器的速度。架构的物理特性不允许这样做。

这就是并发处理的用武之地。

不幸的是,由于数据之间的相互依赖性,大多数OOP语言不能同时利用多个处理器。

在纯函数式编程语言中,计算机可以同时运行两个(或更多)函数,因为这些函数不会改变外部状态信息。

这是一个关于函数式编程的excellent article,你可能会喜欢。

票数 102
EN

Stack Overflow用户

发布于 2008-12-29 14:02:51

我的一位朋友引用他的一位大学教授的话说:

绘制一个网格,顶部是数据类型,左侧是对这些数据类型的操作。如果你垂直切分网格,你是在做OO;如果你水平切开网格,你是在做FP。

我的回答是,FP是一种完全可行的编程方法,具有与OO一样广泛的应用范围。与任何编程语言选择讨论一样,我认为更重要的问题是:

:你是否有时间去学习一种新的符号和一种新的

  • 方法,你正在考虑的语言有足够丰富的库,这样你就不会被困在重新发明一些轮子上了?

至于第一个问题,如果你这样做主要是为了学习价值,我建议你看看Haskell,因为有广泛的支持材料(书籍,文章,活跃的社区等)。

关于第二个问题,Haskell有一系列不错的库(虽然有些比其他的更成熟),但是Scala (一种运行在JVM上的混合面向对象-函数式语言)的优点是,您可以更逐步地过渡到函数式风格,并且您可以使用所有Java可访问的库。

票数 15
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/397425

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档