Trith is a stack-based, concatenative, dynamically-typed functional programming language with a homoiconic program representation.

- Stack-based means that instead of having named parameters, Trith functions operate on an implicit data structure called the operand stack. Trith functions can be thought of in terms of popping and pushing operands from/onto this stack, or equivalently in purely functional terms as unary functions that map from one stack to another.

- Concatenative means that the concatenation of any two Trith functions also denotes the composition of those functions.

- Dynamically typed means that operands to Trith functions are type-checked dynamically at runtime.

- Homoiconic means that in Trith there is no difference between code and data. You can manipulate and construct code at runtime as easily as you would manipulate any other data structure, enabling powerful metaprogramming facilities. Trith programs are simply nested lists of operators and operands, and can be represented externally either as S-expressions or as RDF triples.

Trith is inspired and influenced by experience with Forth, Lisp and Scheme in general, and the concatenative languages Joy, XY, Factor and Cat in particular.

This revision created on Fri, 9 Aug 2019 05:45:57 by Ratatouille