Almide
Playground
Compile
Run
Source
// A tiny Markdown-to-text renderer type Token = | Heading(Int, String) | Paragraph(String) | Bullet(String) | Divider fn parse_line(line: String) -> Token = if string.starts_with?(line, "### ") then Heading(3, string.slice(line, 4)) else if string.starts_with?(line, "## ") then Heading(2, string.slice(line, 3)) else if string.starts_with?(line, "# ") then Heading(1, string.slice(line, 2)) else if string.starts_with?(line, "- ") then Bullet(string.slice(line, 2)) else if string.starts_with?(line, "---") then Divider else Paragraph(line) fn render(token: Token) -> String = match token { Heading(1, text) => string.to_upper(text) ++ "\n" ++ string.repeat("=", string.len(text)) Heading(_, text) => text ++ "\n" ++ string.repeat("-", string.len(text)) Paragraph(text) => " " ++ text Bullet(text) => " * " ++ text Divider => string.repeat("~", 40) } fn fibonacci(n: Int) -> List[Int] = { var a = 0 var b = 1 var result: List[Int] = [] for _ in 0..n { result = result ++ [a] let next = a + b a = b b = next } result } effect fn main(_args: List[String]) -> Result[Unit, String] = { let doc = [ "# Almide", "## A language that compiles to Rust and TypeScript", "---", "- Variant types with pattern matching", "- Pipes, lambdas, and string interpolation", "- Effect system for side effects", "- Compiles to native and web", "---", "## Fibonacci", ] doc |> list.map(fn(line) => parse_line(line)) |> list.map(fn(tok) => render(tok)) |> list.each(fn(s) => println(s)) let fibs = fibonacci(10) let visual = fibs |> list.map(fn(n) => "[${int.to_string(n)}]") |> string.join(" ") println(" ${visual}") let sum = list.fold(fibs, 0, fn(acc, x) => acc + x) println(" sum = ${int.to_string(sum)}") // Heredoc + string interpolation let lang = "Almide" let target1 = "Rust" let target2 = "TypeScript" let report = """ ${lang} compiles to: 1. ${target1} (native) 2. ${target2} (web) Total targets: ${int.to_string(2)} """ println("") println(report) }
Output
Compiled
AST
Press Run to execute.
Anthropic
OpenAI
Gemini
Generate
Your API key is never sent to external servers.
Almide Playground