Localized V2 rewrite for this language is in progress. Showing English-first content for now.

IO

IO de consola y filesystem, rastreado con el efecto `IO`.

IO

El efecto IO representa interacciones con el mundo exterior: salida por consola, lectura de entrada, acceso a archivos, etc.

Salida por Consola

fn main() with IO {
    print("Hello, ")
    println("Sounio!")
}

Leer Entrada

read_line() devuelve un string:

fn main() with IO {
    println("Enter your name:")
    let name = read_line()
    print("Hi, ")
    println(name)
}

Aplicación de Efectos

Si una función requiere IO, quien la llame también debe declarar with IO (o propagar/manejarlo).

Este patrón falla:

fn read_file(path: string) -> string with IO {
    ""
}

fn main() {
    let _ = read_file("test.txt")  // ERROR: IO not declared
}

Y esta es la corrección:

fn read_file(path: string) -> string with IO {
    ""
}

fn main() with IO {
    let _ = read_file("test.txt")
}

Siguiente