monkey-rs 0.1.0

Monkey programming language interpretter.
Documentation
# Introduction

`monkey-rs` is a Rust implementation of the [Monkey](https://monkeylang.org/)
programming language from Thorsten Ball's
[Writing An Interpreter In Go](https://interpreterbook.com/).

> _"But why the name? Why is it called "Monkey"? Well, because monkeys are
> magnificent, elegant, fascinating and funny creatures. Exactly like our
> interpreter"_ — Thorsten Ball

## What is Monkey?

Monkey is a programming language designed to teach the fundamentals of
interpreter construction. It features:

- **C-like syntax** that's familiar and easy to read
- **Variable bindings** with `let` statements
- **Integers and booleans** as basic data types
- **Arithmetic expressions** with standard operators
- **Built-in functions** for common operations
- **First-class and higher-order functions** supporting functional programming
- **Closures** that capture their environment
- **String data type** with built-in functions
- **Array data type** with built-in functions
- **Hash data type** for key-value storage

## Getting Started

To start using monkey-rs, you can run the interactive REPL:

```bash
cargo run
```

This will launch the Monkey REPL where you can experiment with the language
interactively.

## Example Program

Here's a simple example of Monkey code:

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

fibonacci(10); // => 55
```

This documentation will guide you through all the features and capabilities of
the Monkey programming language as implemented in Rust.