NOTE
These documents are a work in progress and may not reflect the final product. For the latest documentation on Grain, visit grain-lang.org, or ask questions on Discord or GitHub.
Purpose
These documents aim to provide a deeper explanation of Grain’s features, idioms, and design patterns than the introduction guide, while being less formal than the official reference.
Introduction
There’s no strict start or end to these docs. Concepts are generally introduced sequentially, but some topics may appear before they are fully explained. These documents assume a basic understanding of programming fundamentals, so you can jump around as needed.
Outline
- Fundamentals
- Modules
- Conditionals
- Definitions
- let
- from
- recursion
- Shadowing
- Functions
- Looping
- Mutation
- DataTypes
- Numbers
- Intro
- Number
- Int/Uint
- Float
- Rational
- BigInt
- General
- Void
- Bool
- String
- Char
- Bytes
- Option
- Result
- Range
- Iterables
- Array
- List
- Advanced
- ADT’s
- Records
- Type Aliases
- Exceptions
- Numbers
- Types
- Standard Library
- Deep Dives
- Patterns
- Type Syntax
- Aliases
- Adts
- Abstract Types Behaviour
- Recursion
- DataType Syntax