A statically typed programming languagev0.1.8-alpha
Expressive code.
Familiar libraries.
Write typed Zolo programs, call libraries from ten languages, and run scripts or build native binaries. Use effects, pattern matching and structured concurrency when your program needs them.
Learn through examples01 / Language integrations
From source code to a running program
Choose a language integration or an execution target to see how they connect and what each one requires.
Data inputs and outputs
A .zolo program can run in the VM, compile through native backends or use the supported WebAssembly, Lua and web subsets. Select an integration to see its host requirements.
Explore this pathHost integrations run on VM / native / LLVM. WebAssembly, Lua and web output have their own supported subsets.
02 / ZOLO
See what the syntax does
Filter a collection, validate a value or update a record. Choose an example, run it and follow its explanation.
let doubled = [1, 2, 3].map(_ * 2)
let positive = doubled.filter(_ > 3)
print(positive)[4, 6]
With a proven one-argument callback signature, underscore can stand for the whole parameter, including arithmetic and ordinary nested value calls. Nested callback slots get their own parameter. Blocks, explicit lambdas, collections and pipes remain scope boundaries.
Understand this feature03 / By Example
Start with a small program
Run in your browser, follow a complete example, or find the rule you need.
04 / TOOLCHAIN
Tools for writing, running and debugging
Format your code, get editor diagnostics and inspect a running program with the CLI, language server and debugger.
ZOLO / v0.1.8-alpha
Run your first Zolo program
Try an example in the browser, or install Zolo to use native plugins and your own files.