This works perfectly, as expected:
julia> push!(S,[2,3,4])
Stack{Any}(Deque [Any[[2, 3, 4]]])
julia> push!(S,[5,6,7])
Stack{Any}(Deque [Any[[2, 3, 4], [5, 6, 7]]])
julia> x = pop()
3-element Vector{Int64}:
5
6
7
julia> y = pop()
3-element Vector{Int64}:
2
3
4
julia> +(x,y)
3-element Vector{Int64}:
7
9
11
But, when my program does the same thing:
julia> jacli()
S: [2,3,4]
execute: term = [2,3,4]
S[[2,3,4]]: [4,5,6]
execute: term = [4,5,6]
S[[2,3,4] [4,5,6]]: +
execute: term = +
apply: x = [4,5,6] y = [2,3,4]
ERROR: MethodError: no method matching +(::String, ::String)
The printout “apply: x = [4,5,6] y = [2,3,4]” is one line before the expression f(x,y) where f = +, clearly showing that x and y are vectors. Why would Julia interpret them as strings?