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

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

Langur was initially developed following Writing an Interpreter in Go and Writing a Compiler in Go, with many features added and changes made.

Please browse the features of langur by following the navigation links.

download

langur 0.3.4 alpha source code (7-Zip, 91K, June 5, 2019)

Langur uses the Apache license 2.0.

Constructive feeback is welcome.

A full revision history is included in the README.md file.

2019-06-05 - 0.3.4 alpha - changed comparison of arrays, hashes, and ranges so that composite things containing NaN may compare as equal - changed interpolation to require $ at beginning of string or regex - fixed escaping of non-string values in interpolations - made it possible to use built-in functions case-insensitive Variables and keywords are still case-sensitive. - updated functions to work with plain strings (not just regex): matching(), index(), indices() - added string x integer (multiply string) operation - added functions: lTrim(), rTrim() - modified pop() function to accept hash and a key or array of keys to remove does not throw on keys not present (including invalid keys) - disallowed explicit fallthrough in shortened form given expression - disallowed spacing between opening interpolation marker and escaping indicator