Langur is an open-source imperative/functional scripting language written by Anthony Davis. Its principles of design are sensibility to humans, accuracy in calculation, and a clean, expressive syntax.

The following is a partial list of langur's features.

I initially developed langur using Thorsten Ball's books (1, 2), with many changes made and features added. It's not his fault if langur doesn't work. Please don't pester him about it.

Source code examples can be found on RosettaCode.org.

download

Try it and let me know what you think. Constructive feedback is welcome.

langur 0.4.31 beta source code (7-Zip, 120K, released October 13, 2019)

Compiling langur also requires the following.

You'll need to copy the files from Go's regexp folder (something like /usr/lib/go-1.10/src/regexp) to the langur/regexp folder. This is to account for the missing replace-with-maximum-count method in Go's standard library, which is needed to make langur's regex methods complete for re2.

Langur uses the Apache license 2.0.

A full revision history is included in the download.

2019-10-13 - 0.4.31 beta - added logical operators "nand" and "nor" These operators short-circuit like "and" and "or". - added "nxor" token for logical equivalence and deprecated use of "leq" token for "nxor" token - updated min() and max() functions to work with any array or hash values comparable with greater than operator (not just numbers in arrays and hashes) - added check for duplicate keys in building hashes - modified join() to use strings.Builder