skiff 0.4.4

An immutability-first, functional scripting language with a friendly syntax and compiler/interpreter written in Rust!
Documentation

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

cargo install skiff
skiff <filename> # make sure installed crate binaries are in your PATH

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

cargo run -- <filename>

For example:

cargo run -- tests/files/success/plus_and_times_precedence.boat

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