Introduction
Moonli is a beautiful programming language with a simple syntax and a very interactive development experience. This enables rapidly prototyping new programs. At the same time, once a prototype is ready, the programs can also be optimized for runtime performance as well as long term maintenance.
Features
- Sane variable scoping rules as given by common lisp
- Sane namespace scoping thanks to common lisp package system
- Sane restarts and condition system thanks to common lisp
- Strong typing with optional static typing, optional dynamic scoping
- Availability of optimizing compilers such as SBCL
- Sensitive to newlines and semicolons but not to spaces and tabs (indentation insensitive)
- Returning multiple values without an intermediate data structure
- Support for rapid prototyping through CLOS and image-based development
Plan
- Real numbers, strings, characters, lists, infix arithmetic operators, literal hash-tables, literal hash-sets
- Typing using "expr::type" operator
- Support for declare and declaim
- Literal syntax for vectors, array access
- BODMAS rule for parsing expressions
- Binaries
- VS Code integration
- Emacs mode and integration with slime: useable but less than ideal
- Infix Logical operators
- Add more forms: progn, mvb, dsb, more…
- Add more tests
- Reverse transpile from common lisp
- Multidimensional arrays, broadcasting, other operations: needs an array library
Feedback
Was this page helpful?
Glad to hear it! Please tell us how we can improve.
Sorry to hear that. Please tell us how we can improve.