From: Robert D. <rob...@gm...> - 2014-06-30 02:03:01
|
On 2014-06-29, Richard Fateman <fa...@be...> wrote: > Introducing backtracking adds capabilities but potentially horrendous > inefficiency. Perhaps the solution here is to introduce one of the > (lisp-source-code) matching programs that are around. Yeah -- I think there is more than one Lisp package for unification -- presumably one could be bolted onto Maxima without too much effort. Haven't tried it yet, though. Same goes for MockMMA. Looks like Mathics is written in Python, although presumably the effort of translation is less than that of reimplementing. I looked at the Mathics examples for pattern matching and it seems to do some interesting stuff not possible with Maxima's current pattern matcher. > Another solution that simplifies the pattern matching is to rearrange > the arguments so they can be matched left-to-right. Yes, that does work; I've tried that before. The solution I arrived at for the Z transform stuff is to have one super-rule which matches only the parameters (n and z) and then applies other rules to hack on the function to be transformed. This exploits dynamic binding -- the inner rules assume than n and z are bound to whatever the super-rule found. > Here's a case that I assume would be of some interest, and not covered... > integrate(delta(z)* delta(z-1)* f(z) ,.... ) . Yup. Scientists say more research is needed. best Robert Dodier |