It’s worth noting that the way Julia parses expressions is open to
exploration if you know what functions to use.
julia> ex = :(-1^2) # quote the piece of code you'd like to know more about
:(-(1^2))
julia> Base.Meta.show_sexpr(ex) # a lisp-y representation of the expression
(:call, :-, (:call, :^, 1, 2))
julia> dump(ex) # a little more detailed
Expr
head: Symbol call
args: Array(Any,(2,))
1: Symbol -
2: Expr
head: Symbol call
args: Array(Any,(3,))
1: Symbol ^
2: Int64 1
3: Int64 2
typ: Any
typ: Any
>From these outputs and a little practise you can figure out a lot about
what Julia is doing.
— Mike