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?