Langur is an open-source imperative/functional language written by Anthony Davis. Its principles of design are sensibility to humans, accuracy in calculation, and a clean, expressive syntax.
Influences include the following languages, and likely many others.
Perl, Go, Python, C#, C, SQL ... and
Thorsten Ball's Monkey language, which was the starting point
The following is only a partial list of langur's features.
given expressions (langur's “switch”) semi-integrated
regex decimal floating point for
numbers number constants
pi, phi, e, n2, n10 optional integer base
x notation for any base from 2 to 36, such as -16xFF or 2x1010_0010 automated
for loop over an array, hash, or string, or over a range set a for loop value as it executes
built-in functions such as map(), fold(), where(), X(), mapX() first-order
functions, including closures immutable or mutable
block quote (similar to a "HEREDOC") indexing
strings by code point
indexing by arrays chained string
interpolation modifiers truncating and floor division
operators; also remainder and modulus, exponent and root optional database operators (null propagating)
exceptions without explicit try blocks a
read() function that validates input books
I initially developed langur following very useful books by Thorsten Ball (
1, 2), but I've made many changes and additions.
I wrote langur to develop skills for another programming project. In the meantime, I wrote a book, explaining how some of langur's advanced features are designed to work in the stack-based virtual machine. See a free preview chapter at