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. Langur deals with extremely large or small numbers natively.
Influences include at least the following languages.
Perl, Go, Python, C#, C ... and
Thorsten Ball's Monkey language, which was the starting point
The following is a partial list of features.
switch/given expressions semi-integrated
regex ISO 8601
date/time literals 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(), filter(), 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 a book explaining the design of some of langur's advanced features, in its stack-based virtual machine. See a free preview chapter at