Funciones

Definir funciones, valores de retorno y anotaciones de efectos.

Funciones

Las funciones siguen siendo orientadas a expresiones, y las anotaciones de efecto siguen siendo la forma pública de marcar efectos secundarios.

Verificado hoy

  • Los efectos explícitos con with ... siguen siendo parte real del contrato del lenguaje.
  • La inferencia local de tipos funciona para bindings y parámetros sencillos.
  • Trata los tests y los artefactos de gate como evidencia más fuerte que la prosa aspiracional o los nombres de directorio.

Caveats actuales

  • El modelo más rico de handlers existe en el diseño, pero el soporte de ejecución sigue siendo desigual.
  • El comportamiento depende del binario exacto de souc, no solo de los archivos presentes en el repositorio.

Pruébalo en este repositorio

fn add(a: i32, b: i32) -> i32 {
    a + b
}

fn log(msg: string) with IO {
    println(msg)
}