
Greg Buchholz wrote:
Casey Hawthorne wrote:
The Q Programming Language can do the following:
sqr X = X*X
==>sqr 5 25
==>sqr (X+1) (X+1)*(X+1)
Can Haskell do symbolic manipulation?
Typeful symbolic differentiation of compiled functions
http://www.haskell.org/pipermail/haskell/2004-November/014939.html
And a GADT version of differentiation: http://haskell.org/hawiki/ShortExamples_2fSymbolDifferentiation which also does some simplifications. I have a version that I did not post that uses the hs-plugins: It can take a function like f x = x * log x + 7 * (-x) + (2**x) - (sin x) and compute the derivative, simplify it, emit the haskell code for it, compile it via hs-plugins, and be able to use it. Of course, you can't INLINE a new function like that, but the performance is still very good.