符号计算和函数式编程是否相关? [关闭]

问题描述 投票:6回答:2

我想知道symbolic computation中的Computer Algebra System(如Matlab,Mathematica中的符号工具箱)和functional programming是如何相关的?前者属于后者吗?

感谢致敬!

functional-programming symbolic-math computer-algebra-systems
2个回答
4
投票

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


1
投票

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

© www.soinside.com 2019 - 2024. All rights reserved.