Pipe Operator |>
Encadena transformaciones como un flujo funcional. Sin funciones de retorno anidadas ni variables temporales.
"hello"
|> String.upper()
|> String.trim()
|> print()Tipos estáticos, composición fluida y tooling integrado. El mismo archivo .zolo corre en el ecosistema Lua, como binario nativo o en WebAssembly.
effect Clock { fn now() -> str }
fn announce(message: str) with Clock -> str {
let time = perform Clock::now()
"{time} · {message}"
}
let line = handle announce("build ready") with {
Clock::now() => "09:42",
}
print(line)09:42 · build ready01 / lenguaje
Composición que se lee de arriba abajo. Seguridad explícita. Un conjunto de herramientas completo.
Encadena transformaciones como un flujo funcional. Sin funciones de retorno anidadas ni variables temporales.
"hello"
|> String.upper()
|> String.trim()
|> print()Los tipos opcionales T?, el encadenamiento opcional ?. y la coalescencia nula ?? eliminan las NPE por diseño.
let city = user?.address?.city ?? "Unknown"
match result {
.Ok(value) => value,
.Err(error) => report(error),
}LSP con autocompletado e información al pasar el cursor, depurador DAP, formateador, extensión de VS Code y REPL — todo listo, sin configuración.
zolo run app.zolo
zolo check app.zolo
zolo test
zolo build --release02 / ejemplos
Programas pequeños y completos para abrir, modificar y ejecutar en el navegador.
let name = "Zolo"
print("Hello, {name}!")
print("Version: {1 + 1}.0")Hello, Zolo! Version: 2.0
VMnativeLLVMwasm-aot04 / herramientas
El compilador, la inteligencia del editor, el formateador y el depurador siguen el mismo modelo del lenguaje.
run, build, check, test, fmt, repl
zolo run hello.zolo 02 LSP Autocompletado, información al pasar el cursor, ir a la definición y pistas de tipo
zolo-lsp 03 VS Code Extensión con syntax highlighting e integración LSP
ext install zolo 04 Formateador Formateo automático basado en AST
zolo fmt file.zolo 05 / start
Empieza en el navegador y lleva el mismo código a la CLI cuando estés listo.