Langur is an open-source functional/imperative scripting language written by Anthony Davis, and was initially developed following Writing an Interpreter in Go and Writing a Compiler in Go, with many features added.

Langur uses decimal floating point for numbers. Some of langur's principles of design are accuracy in calculation, clean syntax, and a functional style.

Langur has a very flexible “given” expression, unlike any “switch” or “select” statements I've seen in other languages.

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


langur 0.2.4 alpha source code, 7-Zip, 76K, April 24, 2019

Langur uses the Apache license 2.0.


Langur probably needs additional variable scoping before it can make Beta status.

Langur's variable declaration underwent renovation for its 0.2 release. We now use val (immutable) and var (mutable) to declare variables and simple assignment to change a var-declared value. Using var also allows declaration without an explicit assignment (implicitly null so far).

Something I haven't fully determined yet is how to deal with NaN comparison.

So far, as an alpha, indexing a hash with 1.0 is different than indexing with 1. This might change.

Constructive feeback is welcome. I'd like to post to a repo for collaboration.