To match the expression tree in Julia we should first construct each row with row and then combine them with vcat.
julia> dump(:([1 2; 3 4]))
Expr
head: Symbol vcat
args: Array{Any}((2,))
1: Expr
head: Symbol row
args: Array{Any}((2,))
1: Int64 1
2: Int64 2
2: Expr
head: Symbol row
args: Array{Any}((2,))
1: Int64 3
2: Int64 4
However, the reason this is given row-wise is kind of specific to the fact that the expression with [1 2; 3 4] is expressed left-to-right, top to bottom.
In practice, we will rather have Matrix that we want to represent in the expression graph and the matrices are stored column-wise. So it's probably better to implement hcat and combine it with the existing vect. The the matrix will be represented as hcat(vect(1, 3), vect(2, 4)).
To match the expression tree in Julia we should first construct each row with
rowand then combine them withvcat.However, the reason this is given row-wise is kind of specific to the fact that the expression with
[1 2; 3 4]is expressed left-to-right, top to bottom.In practice, we will rather have
Matrixthat we want to represent in the expression graph and the matrices are stored column-wise. So it's probably better to implementhcatand combine it with the existingvect. The the matrix will be represented ashcat(vect(1, 3), vect(2, 4)).