using Symata x1 = Range(10.0^3) y1 = Range(10.0^3); g(x_, y_) := Module([s=0], begin For(i=1, i<=Length(x), i += 1, s += x[i]^2 * y[i]^(-3)) s end) g(x1,y1) resultS1 = Timing(g(x1,y1)) Apply(Plus, x1^2 / y1^3) resultS2 = Timing(Apply(Plus, x1^2 / y1^3)) resultS1[1]/resultS2[1] jfunc = J( (x,y) -> sum(u -> u[1]^2 / u[2]^(3), zip(x,y)) ); jfunc(x1,y1) Timing(jfunc(x1,y1)) resultJ = Timing(jfunc(x1,y1)) [resultS1[1], resultS2[1] ] / resultJ[1] jfunc([a+b, c+d],[u+v,y+z]) ClearAll(x,a) Julia(); expr = @sym a + b Expand(expr^2) isymata() Julia(); fj(x,y) = sum(u -> u[1]^2 / u[2]^(3), zip(x,y)); isymata(); fj = J( Main.fj ); fj(x1,y1) J(time)() y2 = J(linspace(1,1000.0,1000)) jfunc(x1,y2) resultJ2 = Timing(jfunc(x1,y2)) resultJ[1]/resultJ2[1] jfunc(y2,y2) resultJ3 = Timing(jfunc(y2,y2)) resultJ2[1]/resultJ3[1] g = Compile( x^2 ); g(3) g = SymataCall(x, x^2 ); g(3) ex1 = Together(PolyLog(-1,z),(1-z)) ex1 ./ ( z => 3) Julia() ? @symExpr f1(z) = @symExpr Together(PolyLog(-1,z),(1-z)) f1(3) isymata() y2 y3 = Unpack(y2); [Head(y3), Length(y3), y3[1], y3[-1]] y3 == y1 == Range(10.0^3) y3[1] = "cat" y3[1:10] y4 = J(collect)(y2); [Head(y4), y4[1]] y5 = J(mxpr(:List, Any[collect(linspace(1.0,1000,1000))...])); [Head(y5), y5[-1]] [Head(y1), Head(y3)] y6 = Pack(y1) y7 = Pack(y3); [Head(y6), Head(y7)] # isymata() Julia(); ? @sym ? symparsestring ? symeval ? symtranseval ? symparseeval ? getsymata ? setsymata a = 1 # set a to 1 in Julia @sym a = 3 # set a to 3 in Symata println("a in Julia is $a") # print a in Julia @sym Println("a in Symata is $a") # print a in Symata @sym z = "cat" @sym z getsymata(:z) setsymata(:z, "dog") getsymata(:z) unpacktoList(linspace(1,4,3)) scode = parse("Sqrt(a)") res = symtranseval(scode) symprintln(res) function squareroots() a = [i for i in 1:9] setsymata(:a, unpacktoList(a)) symprintln(symparseeval("Sqrt(a)")) nothing end squareroots() isymata() ToJuliaString( 3*x^2*y^3 + Cos(1)) s2 = ToJuliaString( 3*x^2*y^3 + Cos(1), NoSymata => False) SetJ(s2,s2); J( x = 3, y = 2); J( eval(parse(Main.s2))) Julia() a = getsymata(:a) typeof(a) mhead(a) margs(a) ex = mxpr(:Cos, mxpr(:Times, :Pi, 2)) symeval(ex) a = newargs(5); copy!(a, [i for i in 1:5]) mxpra(:List,a) mxpra(:Plus,a) symeval(mxpra(:Plus,a)) println(mmul(3,2), ", " , mmul(:b, :a)) code_native(mmul,(Int,Int)) code_native(*, (Int,Int)) Cos(mmul(2,Pi)) symatamath() Cos(2Pi) isymata() VersionInfo() Now()