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

Tu Primer Programa

Un programa pequeño de punta a punta que compila hoy, más la versión epistémica a nivel de especificación.

Tu Primer Programa

Esta página muestra dos versiones de la misma idea:

  • Un programa que compila y se ejecuta hoy con la toolchain actual de souc
  • La versión epistémica a nivel de especificación (donde incertidumbre + unidades se aplican por completo)

Versión A: Compila Hoy (Knowledge + Unwrap Explícito)

En el compilador actual, Knowledge<T> existe, y extraer el valor subyacente es explícito vía unwrap(reason).

fn main() with IO {
    let k = Knowledge { value: 42.0 }

    // Explicit extraction requires a reason string.
    let x: f64 = k.unwrap("accepted for demo")

    if x == 42.0 {
        print("knowledge_unwrap: PASS\n")
    } else {
        print("knowledge_unwrap: FAIL\n")
    }
}

Ejecútalo:

souc run first_program.sio

Versión B: BMI Epistémico (Aspiracional)

La especificación del lenguaje y el diseño de la stdlib soportan:

  • unidades de medida (por ejemplo, kg, m)
  • mediciones con incertidumbre
  • control de flujo basado en confianza

Cuando esas piezas estén totalmente integradas, la misma idea se ve así:

fn main() with IO {
    // Spec-level sketch (not all pieces are enforced by the compiler yet)
    let mass: Knowledge<f64> = measure(value: 75.3, variance: 0.5 * 0.5, source: "scale")
    let height: Knowledge<f64> = measure(value: 1.82, variance: 0.01 * 0.01, source: "tape")

    let bmi = mass / (height * height)

    if bmi.confidence > 0.90 {
        println("BMI is safe to use for a decision")
    } else {
        println("BMI is too uncertain")
    }
}

¿Qué sigue?