mech 0.3.3

Mech is a programming language for building reactive systems like robots, games, and animations.
Documentation
Mech Documentation
===============================================================================
v0.3.2-beta
===============================================================================


1. Getting Started
-------------------------------------------------------------------------------

1. [Introduction](getting-started/introduction.html)
2. [Install Mech](getting-started/install.html)
3. [Build and Run Mech Programs](getting-started/build-and-run.html)
4. [Mech REPL](getting-started/repl.html) 
5. [Your First Mech Program](getting-started/first-program.html) `todo`

2. Platform Reference
-------------------------------------------------------------------------------

(2.1) Data Model

- [Data Types](/reference/data.html)
  - [`atom`](/reference/atom.html) - symbolic constants, often used for tags or enums
  - [`bool`](/reference/bool.html) - logical values for true and false
  - [`empty`](/reference/empty.html) - represents an absence of value
  - [`kind`](/reference/kind.html) - a category of values
  - [`number`](/reference/number.html) - numeric values, including integers and floating-point numbers
  - [`string`](/reference/string.html) - sequence of UTF-8 characters representing text

- [Data Structures](/reference/structures.html)
  - [`map`](/reference/map.html) - stores key-value pairs for fast lookups
  - [`matrix`](/reference/matrix.html) - 2D array of homogenous values arranged in rows and columns
  - [`record`](/reference/record.html) - groups related fields, usually for representing structured data
  - [`set`](/reference/set.html) - unordered collection of unique values
  - [`table`](/reference/table.html) - collection of heterogeneous data organized into rows and columns
  - [`tuple`](/reference/tuple.html) - fixed-size, ordered grouping of heterogeneous values

(2.2) Program Model

  - [Defining, Assigning, and Accessing Data](/reference/define.html) `todo` - create data and change it
  - [Data Conversion](/reference/convert.html) `todo` - convert data from one kind to another
  - [Expression Broadcasting](/reference/broadcasting.html) - apply operations over data structures
  - [Patterns](/reference/patterns.html) - match and destructure data
  - [Indexing](/reference/indexing.html) - access elements within data structures
  - [Comprehensions](/reference/comprehensions.html)
  - [Match Expressions](/reference/match.html)
  - [Functions](/reference/functions.html)
  - [State Machines](/reference/state-machines.html)
  - Error Handling `todo`
  - Synthesis and Generation `todo`
  - Tests `todo`
  - Programs `todo`
  - Modules `todo`

(2.3) System Model

(i)> Coming `v0.4`

- Capabilities `todo`
- Distributed Computation `todo`
- Concurrency `todo`

3. Mechdown Reference
-------------------------------------------------------------------------------

- Introduction
  - What is Mechdown? `todo`
  - Writing Mechdown Documents `todo`
  - Mechdown Syntax Overview `todo`
- Mechdown Documents `todo`
  - Sections and Subsections `todo`
  - Tables of Contents `todo`
  - Breadcrumbs `todo`
  - Document Metadata `todo`
- Document Elements
  - [Title](/mechdown/title.html)
  - [Paragraph](/mechdown/paragraph.html)
  - [List](/mechdown/list.html)
  - [Code Block](/mechdown/code-block.html)
  - [Table](/mechdown/table.html)
  - [Image](/mechdown/image.html)
  - [Thematic Break](/mechdown/thematic-break.html)
  - [Equation](/mechdown/equation.html)
  - [Callout Block](/mechdown/callout-block.html)
  - [Diagram](/mechdown/diagram.html)

4. Standard Library
-------------------------------------------------------------------------------

- [Assign](/stdlib/assign/index.html) `todo`
- [Access](/stdlib/access/index.html) `todo`
- [Combinatorics](/stdlib/combinatorics/index.html) `todo`
- [Compare](/stdlib/compare/index.html) `todo`
- [Convert](/stdlib/convert/index.html) `todo`
- [Io](/stdlib/io/index.html) `todo`
- [Logic](/stdlib/logic/index.html) `todo`
- [Math](/stdlib/math/index.html)
- [Matrix](/stdlib/matrix/index.html) `todo`
- [Range](/stdlib/range/index.html) `todo`
- [Set](/stdlib/set/index.html)
- [Stats](/stdlib/stats/index.html) `todo`
- [String](/stdlib/string/index.html) `todo`

5. Guides
-------------------------------------------------------------------------------

- [Mech in Fifteen Minutes](/guides/mech-in-fifteen-minutes.html)
- [Tutorials](/guides/tutorials.html) `todo`

6. Project Design Documents
-------------------------------------------------------------------------------

- [Platform Specification](/design/specification.html)
- [Design Principles](/design/design-principles.html) `todo`
- [Syntax Design Notes](/design/syntax-design.html) `todo`
- [History](/design/history.html) `todo`
- [Roadmap](/design/ROADMAP.html)

7. Examples
-------------------------------------------------------------------------------

- [Fizz Buzz](/examples/fizzbuzz.html) - a classic programming exercise that demonstrates the use of Mech's data model and operators.
- [N-Body Simulation](/examples/n-body.html) - a simulation of gravitational interactions between multiple bodies.
- [Extended Kalman Filter](/examples/ekf.html) - an implementation of the Extended Kalman Filter algorithm for state estimation.

```mech:hidden
document/index := {
  name: "docs" 
  version: "v0.3.3"
  authors: ["Corey Montella"] 
  machine-url: "https://gitlab.com/mech-lang/mech/docs"
  license: "Apache-2.0"}
```