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?
- Aprende sobre Tipos Epistémicos
- Lee
Knowledge<T> - Explora Efectos