Basics
Here we show how to wrap Julia arrays and create an Impero expression.
Numbers
using Impero, Plots, GraphRecipes@wrapper a=1 b=2;We can even plot it
c = a+b
plot(c)and compute values with it
compute(c)3
Arrays
We can also wrap Arrays or Matrices
using Impero, Plots, GraphRecipes
array_1 = ones(3)
array_2 = ones(3)
@wrapper a=array_1 b=array_2;b
and compute values with it
c = a+b
compute(c)3-element Array{Float64,1}:
 2.0
 2.0
 2.0Note that Impero does not provide an error check for improperly defined Julia objects on this level since
c = a*b(a*b)
is fine, but compute(c) will yield an error.
User Defined Structs
As long as a user has the operations
unary_operators7-element Array{Any,1}:
 ["Negative", "-"]
 ["SquareRoot", "√"]
 ["Tanh", "tanh"]
 ["Sin", "sin"]
 ["Cos", "cos"]
 ["Tan", "tan"]
 ["Exp", "exp"]and
binary_operators3-element Array{Any,1}:
 ["Add", "+"]
 ["Multiply", "*"]
 ["Exponentiation", "^"]defined then one can use Impero exactly as before
Converting to Julia Expressions
Any Impero object can be converted to a Julia expression through the to_expr function
@wrapper a=1 b=2
impero_expr = a+b(a+b)
julia_expr = to_expr(impero_expr):((+)(a, b))