Getting started

Raven language guides

These guides explain how to write clear Raven programs and how to choose among the language's application-level constructs. They are written for people learning and using Raven: examples lead, essential behavior is explained in context, and compiler-internal detail stays out of the learning path.

Start here

Build something

Workload guides teach the language in an application context:

Current shape in one screen

import System.Console.*

func Main() -> () {
    let result = match ParsePort("8080") {
        Ok(let port) => "Listening on $port"
        Failure(let err) => "Invalid port: $err"
    }

    WriteLine(result)
}

func ParsePort(text: string) -> Result<int, string> {
    return int.Parse(text) match {
        Ok(let value) => Ok(value)
        Failure(_) => Failure("not a number")
    }
}

Use the introduction for a guided overview, the feature guides for focused concepts, the language reference for detailed rules, and the application guides for complete project shapes.

Language proposals and compiler development notes are maintained separately in the source repository. They are useful to contributors, but do not define the user-facing language documentation.