blob: c2c0eb2d6e170fa1b515541546fcf6cfe15d3323 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
|
# Tunk
**Tunk** is a
- strongly and dynamically typed
- pure functional
- interpreted
- general use
programming language. Tunk is a hobby project written for educational purposes, and is inspired by languages such as Elm and Haskell.
## Running Tunk
Build the `tunk` interpreter with `cargo`:
cargo build --release
Run `tunk` on a source file:
target/release/tunk run samples/recursion.tunk
Run `tunk` REPL:
target/release/tunk repl
## TODO
- 𝛂-conversion to avoid variable name collisions in recursive functions
- anonymous function syntax (`\x y -> x`)
- A pipeline operator (`argument |> function`)
- A function composition operator (`inner >> outer`)
- tail call recursion optimization
- more primitives: `list`, `tuple`
- list/monad operations `map`, `filter`, `reduce`
- an effect system for handling IO etc.
## Author
Jan Tuomi, <<jans.tuomi@gmail.com>>
|