This week, the development was mostly concerning chalang lisp. Here’s what has been done:

Chalang lisp now has a way of defining functions so that users can store intermediate values in local variables. It is similar to making functions in Python and JavaScript.

Chalang lisp now lets users control which functions and macros are exported from a file, without polluting the global namespace.

Chalang lisp now has useful error messages.

The listp version of functions now supports tail call optimisation, which means that recursion can get much deeper.

Binary encoding, which is used for scalar oracles, was rewritten in lisp syntax.

The list compiler now lets users reuse variable names in different functions/macros. They are local variables that don’t interfere with each other.

Zack Hess wrote a rational numbers library in chalang, and a square root library. They are useful examples for how to make smart contracts, and the rational numbers might end up being used for a smart contract.