Om: concatenative homoiconic language

FWIW, I ran across the fact that the Rebolish Rye Language there is a "concatenative dialect" called "Eyr" (Rye backwards).

Eyr is apparently native code (or "BFunction", builtin function). So it's written in Go, that is able to examine and produce Rye values.

Rye evaldo/builtins_eyr.go

It's used in the implementation of a MATH dialect. Here are the Eyr evaluations that are in the reddit page:

x> 2 3 4 + 5 +
[Block: ^[Integer: 2] [Integer: 12] ]

x> +
[Block: ^[Integer: 14] ]

x> { 100 200 300 } 2 tail
[Block: ^[Integer: 14] [Block: ^[Integer: 200] [Integer: 300] ] ]

x> sum
[ Block: ^[Integer 14] [Integer: 500] ]

x> * 777 +
[ Block: ^[Integer: 7777] ]

; left set-words
x> "ena" "tive" concat :x
[Block: ^[Integer: 7777] ]

x> "concat" x concat to-upper print
CONCATENATIVE
[Block: ^[Integer: 7777] [String: CONCATENATIVE] ]

; we can also invoke regular rye dialect
x> { print 101 + 10 } do
111
[Block: ^[Integer: 7777] [String: CONCATENATIVE] [Integer: 111] ]