/monkey

Monkey programming language implementation.

Primary LanguageGoMIT LicenseMIT

Monkey

Simple implementation Monkey Programming Language while reading Writing An Interpreter In Go.

Build

make

Run

You can run Monkey interpreter with REPL:

./bin/monkeyc -repl

Also, it's possible to run Monkey script from file:

./bin/monkeyc -in ./examples/hello.monkey

Examples

Variables

let age = 1;
let name = "Monkey";
let result = 10 * (20 / 2);

Arrays & Hashes

let myArray = [1, 2, 3, 4, 5];
let thorsten = {"name": "Thorsten", "age": 28};
let myArray2 = ["Thorsten", "Ball", 28, fn(x) { x * x }];

myArray[0] // => 1 
thorsten["name"] // => "Thorsten"

Functions

let add = fn(a, b) { return a + b; };
let add = fn(a, b) { a + b; };

add(1, 2);

let fibonacci = fn(x) { 
    if (x == 0) {
        0
    } else {
        if (x == 1) {
            1
        } else {
            fibonacci(x - 1) + fibonacci(x - 2);
        } 
    }
};

let twice = fn(f, x) { 
    return f(f(x));
};

let addTwo = fn(x) { 
    return x + 2;
};
twice(addTwo, 2); // => 6

Builtin functions

let myArray = ["one", "two", "three"];

len(myArray)            // 3
first(myArray)          // one
rest(myArray)           // [two, three]
last(myArray)           // three
push(myArray, "four")   // [one, two, three, four]

len("Hey Bob, how ya doin?") // 21

puts("Hello World!")