funki_lang 0.1.2

A customisable embeddable functional langauge.
Documentation
# Funky Templates

## TODOs:

### Parser:

- [x] Patterns
- [x] Logic operators
- [x] Other number operators
- [x] Full document
- [x] Multiline string
- [x] String interpolation
- [x] Multi line string interpolation
- [x] Lambdas
- [x] Parse time errors
- [ ] Underscores parse time error stuff
- [x] Move string escaping to lalrpop
- [x] Use parser errors better
- [ ] Check scope rules at parse time

### Interpreter:

- [x] Basic arithmetic and string building DONE
- [x] Basic function calling and frames
- [x] Arguments
- [X] String interpolation
  - [X] Escape sequences
- [X] Pattern matching
  - [X] TEST
- [X] Lists
- [x] Guards
  - [X] TEST
- [x] Booleans
  - [X] TEST
- [ ] Token hashtable? - **not doing**
- [X] Better errors (`@L @R`)
  - [X] Add location data to ast
  - [X] Use AST to make errors
- [X] Underscores
- [X] Closures
- [X] Builtin function
  - [X] List
    - [X] TEST
  - [X] Get
    - [X] TEST
  - [X] Map
  - [X] Filter
  - [X] Any
  - [X] All
  - [X] Fold
  - [X] Length
- [x] Extra functions
- [x] Extra operators
- [x] Extra types

### API:

- [x] Look into API design patterns in Rust
- [x] Define API
- [x] Adding arguments
- [x] Flesh out return types
- [x] Adding extra builtin functions, types, and operators

### Documentation

#### API:

- [ ] Continue Docs

#### Language:

- [ ] Work out format for language documentation