MUPLEx is basically an extensions of MUPL. It adds some syntactic sugar as well as new features. Here's a list:
- Functions with an arbitrary number of arguments
- Currying by default
- Mutability - yes, I know mutability is the source of all evil (most of it, at least) but in some cases it makes sense, like having lazy evaluation or memoization
- Records - to be able to build meaningful data structures
- More math operations
- Letrec - the equivalent of forward declaration in C (this way you can have mutually recursive functions, or other useful constructs)
- Cond - syntactic sugar for nested conditionals
- Lists - syntactic sugar for nested pairs
- A way to print out stuff
- Booleans
It also has some primitive type checking to catch some errors as you type. But, unfortunately, at this stage the errors are not too explicit.
I can't include the interpreter in this post because it's a pretty hefty beast, but I can point you to the github HTML preview thingie or directly to the repository.
*the preview may not work in Chrome/Safary