Roman

Roman

The simple grammar of Roman expressions

Roman reverses Lisp convention and uses RPN notation. So it's the very last symbol in the expression, that's considered the applicable function name.

So for e.g in x = 5 !, the ! exclamation operator is actually a function that's equivalent to the built-in form def in Lisp (Scheme).

So all other symbols, x, = and 5 are arguments to the ! function.

The second thing to notice is that the ! expects = in the second position for variable definitions. It also may behave differently if it finds a > in that position for e.g. It's a convention in Roman to use the second argument as a "verb" to the "punctuating function".

And as you may have guessed, Roman calls the very first argument to "punctuating functions" as "Subject" and all remaining arguments (from position 3 to the last-but-one) as objects.