myslip README ============= Below is a short introduction to this programming language and instructions on setting it up. `TUTORIAL.md` may help getting familiar with the language. Language introduction --------------------- STILL TODO (or to modify) how functional is it? myslip is a lisp-inspired language, but a bit different (mostly, because I have never really written lisp except for in emacs, so I have no clue of what lisp usually is like). Valid myslip s-expressions may be atoms of different types or lists of them, though not all syntactically valid myslip expressions are ones that can be evaluated. S-expression := Atom | List Atom := TODO List := (S-expression ... S-expression) The myslip interpreter performs type checking on s-expressions and evaluates them according to polish notation, ie. the first S-expression of a list is taken to be the operator that is passed the rest of the expressions as arguments. Running the project ------------------- myslip can be built using cargo 1.88.0. Instructions to install cargo can be found online: https://doc.rust-lang.org/cargo/getting-started/installation.html If you are having trouble due to having a different version and you used rustup for your cargo installation, you can follow these instructions on how to change the rust version https://rust-lang.github.io/rustup/overrides.html TODO: system requirements? try it out on debian ```console TODO $ sudo apt install curl git $ curl ??? | sh ??? $ git clone ??? $ cd myslip ``` and then the interpreter can be accessed either via `cargo run`, or then you can add it to your path: ```console TODO $ cargo build $ ln ??? ??? $ myslip ```