aboutsummaryrefslogtreecommitdiff
path: root/README.md
diff options
context:
space:
mode:
Diffstat (limited to 'README.md')
-rw-r--r--README.md52
1 files changed, 36 insertions, 16 deletions
diff --git a/README.md b/README.md
index a65cdb7..f5881f1 100644
--- a/README.md
+++ b/README.md
@@ -10,12 +10,15 @@ and instructions on setting it up.
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).
+
+Myslip is a functional, symbolically interpreted programming
+language. It's syntax is inspired by lisp and polish
+notation. The author hasn't programmed much in lisp-variants
+or in (non-general-purpose) functional languages, so the
+language might include some slips or oddities, hence
+the name. But the language is coherent within itself,
+so learning it shouldn't be too hard.
+
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.
@@ -31,8 +34,8 @@ be the operator that is passed the rest of the expressions
as arguments.
-Running the project
--------------------
+Running myslip
+--------------
myslip can be built using cargo 1.88.0. Instructions to
install cargo can be found online:
@@ -44,22 +47,39 @@ 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
+So, for example
```console
-TODO
$ sudo apt install curl git
-$ curl ??? | sh ???
-$ git clone ???
+$ curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
+$ git clone 'https://git.cron4.fi/myslip.git'
$ cd myslip
```
-and then the interpreter can be accessed either via
-`cargo run`, or then you can add it to your path:
+and then myslip can be accessed either via `cargo run`,
+or alternatively you can add it to your `$PATH`:
```console
-TODO
$ cargo build
-$ ln ??? ???
+$ ln "$(pwd)/target/debug/myslip" ~/.local/bin/myslip
$ myslip
```
-Exit the REPL by CTRL+C, CTRL+D or entering "exit".
+Exit the REPL by pressing CTRL+C, CTRL+D or entering "exit".
+
+For a quick reference on how to use the `myslip` command,
+see `myslip --help`.
+Running `myslip filename.slip` tries to read a file named
+`filename.slip` as an s-expression and evaluates it.
+On the other hand, running `myslip` without specifying an
+executable file opens a REPL, in which you can enter
+one s-expression per line for evaluation. Variables bound
+in earlier expressions can be used.
+
+If you wish to load a set of definitions from a file, say
+`header.slip`, use the `--load`-argument (`-l` for short):
+```console
+$ myslip -l header.slip
+```
+The standard library, found in `stdlib.slip`, is loaded
+in an equivalent way by default. If you wish to disable
+it, you can use the option `--no-stdlib`.