I was wondering if symbolic computation in Computer Algebra System (such as symbolic toolbox in Matlab, Mathematica) and functional programming related and how? Does the former belong to the latter?
Thanks and regards!
I was wondering if symbolic computation in Computer Algebra System (such as symbolic toolbox in Matlab, Mathematica) and functional programming related and how? Does the former belong to the latter?
Thanks and regards!
They're different beasts. However, one point of overlap is term-rewriting languages such as pure ( http://code.google.com/p/pure-lang/ ). Pure can be used as a purely functional programming language. However, since it is implemented by term rewriting rather than graph reduction, its expressions are always able to be pattern-matched into their bits and transformed. This sort of symbolic manipulation is one of the key features of computer algebra systems. That said, a great deal of the power of computer algebra systems comes from having lots and lots of math baked in, and especially having powerful algorithms baked in for solving various tricky problems. You could write libraries to do that in functional languages (and algebraic data types would make it more pleasant than in imperative ones), but you'd still need to write those libraries.
These two concepts are not necessarily related. However, you might find interesting the fact that the Lisp programming language designed by John McCarthy in 1958 was influenced by the lambda calculus. Also that year, McCarthy published An Algebraic Language for the Manipulation of Symbolic Expressions where a very simple symbolic differentiation program was presented (see Appendix I). Therefore, you can see that the two concepts were very close at the beginning.
© 2022 - 2024 — McMap. All rights reserved.