Skiff
An immutability-first, functional scripting language with a friendly syntax and interpreter written in Rust!
Running
You can run Skiff in the Skiff web editor.
If you prefer to use your own text editor, you can install Skiff from crates.io and run it from the command line
Language Reference
Full docs are a work in progress. To get an idea of what the features and syntax look like, you can look at the language tour test file.
Developing
Clone the repo to work on Skiff. You can run a local development version using
For example:
Roadmap
Language Features:
Tree Walk Interpreter | Bytecode Interpreter | |
---|---|---|
Arithmetic | ✓ | |
Equality Operators | ✓ | |
Conditionals | ✓ | |
Functions | ✓ | |
Recursion | ✓ | |
Lambdas | ✓ | |
Let binding | ✓ | |
Improved Error Reporting | ✓ | |
Type Annotations | ✓ | |
Type Inference | ✓ | |
Algebraic Datatypes | ✓ | |
Pattern Matching | ✓ | |
Exhaustiveness Checking | ✓ | |
Call Stack Traces | ✓ | |
Parameterized Types | ||
Strings | ||
File Operations | ||
Testing Constructs |
Miscellaneous:
- REPL
- Language Reference
- Web Editor (WASM)
- Continuous Integration
- Publish crate