SymataSyntax.jl: Mathematica syntax for Symata

SymataSyntax.jl allows you to use Symtata with Mathematica syntax. At the moment, Mma
syntax can be entered in a terminal REPL or read from a file. You need to checkout the
latest master branch of Symata.jl, not the latest version.

Symata is a general purpose CAS with an syntax tree that is essentially the same as Mathematica.

symata 1> MmaSyntax()
In[1]:= ex1 = {{}, {f[a], f[b]}, {f[a]}, {f[a, b]}, {f[a], g[b]}} /. {f[_] ..} -> x
Out[1]= {{}, x, x, {f[a, b]}, {f[a], g[b]}}

In[2]:= ex2 = {{}, {f[a], f[b]}, {f[a]}, {f[a, b]}, {f[a], g[b]}} /. {f[_] ...} -> x
Out[2]= {x, x, x, {f[a, b]}, {f[a], g[b]}}

In[3]:=       # ctrl-d returns to Symata
symata 3> ex1
Out(3) = [[],x,x,[f(a,b)],[f(a),g(b)]]

symata 4> ex2
Out(4) = [x,x,x,[f(a,b)],[f(a),g(b)]]

SymataSyntax.jl is a separate package because it relies on the mathics GPL-licensed parser written in python.

This is new, so, of course there will be glitches.

3 Likes

[Sorry, I have added a tag to your post and Discourse bumped it]