Welcome to Grain!

GitHub   Edit on GitHub

We’re ecstatic to have you here! Grain is still in its early days, so the language is still changing rapidly. Nonetheless, we’re trying our best to keep the guide and the documentation as up to date as possible. If you see a typo or know a better way to explain something, feel free to hit the handy “Edit on GitHub” button located at the top of each page. Any and all contributions are welcome and greatly appreciated.

The Premise

Grain is a programming language that brings wonderful features from academic and functional programming languages to the 21st century. We want these features to be accessible and easy to understand. Ideally, as you make your way through this guide, you’ll find that the language feels largely familiar and homey, with many quality-of-life improvements that you’d come to expect of any new-age language.

The WebAssembly Bits

One of the most exciting things about Grain is that it compiles to WebAssembly. As such, Grain can run in the browser, on your computer, on a server, and potentially elsewhere. This guide will largely focus on the browser and terminal.