aboutsummaryrefslogtreecommitdiffstats
path: root/README.md
blob: ffdbdb5d73c0d6f6137e65eed61d9c0964c47d6c (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
# 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/sample1.tunk

Run `tunk` REPL:

    target/release/tunk repl

## TODO

- 𝛂-conversion to avoid variable name collisions in recursive functions
- 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>>