Soup is a simple interpreted language, the runtime for which is written in Elixir.
It looks like this:
let x = 1
let y = 2
let add = |x, y| {
x + y
}
let z = add(x, y)
It's largely an adaption of the Simple language from the first few chapters of Tom Stuart's excellent Understanding Computation. Go grab a copy.
# Compile the interpreter
MIX_ENV=prod mix escript.build
# Run some Souper code!
./soup priv/code/addition.soup