Hello Jim, Thanks for the long response. I looked at the papers; I think they are worth studying. I found that I can progress most quickly modeling on Mathematica. The design is fairly simple and consistent. Of course the documentation is vague in some places, but so far, it is not a problem. Of course, even if you know logically what the rules should do, there is still the matter of building data structures and applying them. I am more concerned now in getting correct logical behavior than efficient application of rules. I want to see a cohesive system. A lot of risk is reduced, because we know Mathematica works. But, it is good to develop ideas about efficient implementation at the same time, and there is no avoiding it when doing commutative matching.
I installed sympy, but have not played with it yet, but I definitely will. I've looked just a bit at the code. If you have any experience optimizing pattern matching, or other resources, I'd like to hear about it. Another resource is Richard Fateman's mma4max <http://www.cs.berkeley.edu/~fateman/lisp/mma4max/>, which I see has updates since I last built it. It aims more or less to implement mma in common lisp. In fact it has a Julia-compatible license and a complete parser written in common lisp. IIRC the comments show that the pattern matcher is not perfect, but I think it is complete. --John On Monday, January 26, 2015 at 3:07:22 AM UTC+1, [email protected] wrote: > > Hi, > > Here is some code I have been working on. It is for symbolic computation > based on pattern matching. > If you find it interesting, any feedback is welcome! > > https://github.com/jlapeyre/SJulia > > --John >
