Saltar al contenido

26 · Efectos Algebraicos

Handlers antes del bloque

with handler_value { cuerpo } evalúa e instala el handler antes del cuerpo. Tiene la misma semántica que handle cuerpo with handler_value. Los bloques anidados restauran el handler exterior; retornos y limpieza conservan sus límites léxicos. El valor debe ser un Handler comprobado.

En esta página

with handler_value { cuerpo } evalúa e instala el handler antes del cuerpo. Tiene la misma semántica que handle cuerpo with handler_value. Los bloques anidados restauran el handler exterior; retornos y limpieza conservan sus límites léxicos. El valor debe ser un Handler comprobado.

Ejemplo completo

Handlers antes del bloque.

21-lexical-handlers.zolo
Playground
// Prefix handler installation keeps the interpretation next to its scope.

// expected:

// memory

// inner

// memory


effect Config {
    fn read() -> str
}

fn load() with Config -> str = perform Config::read()

let memory = handler {
    Config::read() => "memory",
}

let inner = handler {
    Config::read() => "inner",
}

print(with memory { load() })

let nested = with memory {
    let answer = with inner { load() }
    answer
}
print(nested)
print(with memory { load() })

Reglas y comportamiento

Handlers y ámbitos de recursos · Documentación

Desde un checkout del repositorio:

zolo examples/features/25-effects/21-lexical-handlers.zolo

Índice global

Encuentra tu camino por Zolo

Prueba una idea

Empieza aquí

9 resultados

9 resultados

enespt-br