6

我想知道计算机代数系统中的符号计算(例如Matlab,Mathematica中的符号工具箱)是否与函数式编程相关以及如何?前者属于后者吗?

谢谢并恭祝安康!

4

2 回答 2

4

他们是不同的野兽。然而,一个重叠点是术语重写语言,例如纯(http://code.google.com/p/pure-lang/)。Pure 可以用作纯函数式编程语言。但是,由于它是通过术语重写而不是图形缩减来实现的,因此它的表达式总是能够被模式匹配到它们的位中并进行转换。这种符号操作是计算机代数系统的关键特征之一。也就是说,计算机代数系统的强大功能来自于大量的数学运算,尤其是强大的算法用于解决各种棘手的问题。你可以用函数式语言编写库来做到这一点(代数数据类型比命令式语言更令人愉快),但你仍然需要编写这些库。

于 2011-04-05T16:49:07.027 回答
2

这两个概念不一定相关。但是,您可能会发现有趣的事实是,John McCarthy 在 1958 年设计的 Lisp 编程语言受到 lambda 演算的影响。同年,McCarthy 发表了 An Algebraic Language for the Manipulation of Symbolic Expressions,其中提出了一个非常简单的符号微分程序(见附录 I)。因此,您可以看到这两个概念在开始时非常接近。

于 2011-04-05T17:00:34.057 回答