Functional programming 函数式编程适合哪类问题?

Functional programming 函数式编程适合哪类问题?,functional-programming,Functional Programming,函数式编程似乎是计算机科学中的一种范式,它有着越来越多的反响 我想知道哪类问题用函数式编程方法比用更传统的面向对象方法更好地解决 谢谢。函数式编程非常适合创建可以并行执行的程序,因为它们不鼓励使用全局状态。函数式语言在数学和统计学中使用得很多。我同意Galwegian- “函数式语言在数学和统计学中被大量使用。” 然而,这些并不是唯一的用途。随着函数式编程语言变得越来越主流,您可能会开始发现用这些语言编写的业务类/库/软件。为了进一步了解并行执行点,函数式语言往往适合于图形建模,比如光线跟踪。<

函数式编程似乎是计算机科学中的一种范式,它有着越来越多的反响

我想知道哪类问题用函数式编程方法比用更传统的面向对象方法更好地解决


谢谢。

函数式编程非常适合创建可以并行执行的程序,因为它们不鼓励使用全局状态。

函数式语言在数学和统计学中使用得很多。

我同意Galwegian-

“函数式语言在数学和统计学中被大量使用。”


然而,这些并不是唯一的用途。随着函数式编程语言变得越来越主流,您可能会开始发现用这些语言编写的业务类/库/软件。

为了进一步了解并行执行点,函数式语言往往适合于图形建模,比如光线跟踪。

< P>几乎有很多数学的东西。

< P>如果你在写C++模板,你是用纯函数语言工作的。

< P>这是接近这些问题的。


例如,函数式语言ML非常适合于实现编译器和其他应用程序操作树。

XSLT是函数式编程语言的一个示例,用于转换以XML表示的数据或文档——诚然,这是一种非常冗长且非常有限的语言。如果我没记错的话,XQuery也是纯功能的。诀窍在于,在没有任何全局状态概念的情况下,它们依赖于宿主程序来提供数据并使用结果。这有助于保持XSLT程序(样式表)的纯粹性和可重用性,但您需要添加某种(命令式)框架,将其用作通用处理系统的一部分。

函数式编程最适合于大多数类型的问题,包括您通常使用面向对象编程的任何问题,除了可能需要存储大量状态或其他副作用的问题。除此之外,FP比OOP更优雅地处理复杂问题,因为它有很多来自数学背景(从lambda微积分开始)。就抽象和组合而言,您有更多的灵活性。一个具有大量设计模式的面向对象程序可以使用更多的功能结构进行重构,这将允许您在没有设计模式让您编写的样板结构的情况下执行相同的操作。除了数学和解析之外,FP还广泛应用于人工智能(特别是Lisp)

基本电子表格可被视为功能程序…:)

数据结构。示例:将斐波那契堆(通常用作优先级队列)的命令式实现与函数式实现进行比较。通常,功能代码少于100行,而命令式实现可以有更多行。

解决许多问题子问题子问题……;)我不确定我是否会将OO描述为“更传统”的方法,特别是从计算科学的角度来看。OO起源于60年代末的Simula;在50年代后期使用LISP实现功能。Smalltalk,第一种明确标记为“面向对象”的语言,是在70年代与ML同时开发的,ML可以被认为是第二代函数式编程语言的开始。可能的重复是注释而不是qu,不是吗?