Seu Primeiro Programa
Um programa pequeno de ponta a ponta que compila hoje, mais a versão epistêmica no nível da especificação.
Seu Primeiro Programa
Esta página mostra duas versões da mesma ideia:
- Um programa que compila e roda hoje com a toolchain atual do
souc - A versão epistêmica no nível da especificação (onde incerteza + unidades são totalmente aplicadas)
Versão A: Compila Hoje (Knowledge + Unwrap Explícito)
No compilador atual, Knowledge<T> existe, e extrair o valor subjacente é explícito via 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")
}
}
Rode:
souc run first_program.sio
Versão B: BMI Epistêmico (Aspiracional)
A especificação da linguagem e o design da stdlib suportam:
- unidades de medida (ex.:
kg,m) - medições com incerteza
- controle de fluxo baseado em confiança
Quando essas peças estiverem totalmente integradas, a mesma ideia fica assim:
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")
}
}
O que vem a seguir?
- Aprenda sobre Tipos Epistêmicos
- Leia
Knowledge<T> - Explore Efeitos