Knowledge<T>
El tipo epistémico de valor de Sounio: unwrap explícito, sin pérdida silenciosa de incertidumbre.
Knowledge<T>
Knowledge<T> es el tipo epistémico de valor de Sounio: un valor junto con metadatos sobre qué tan conocido es.
Lo que Funciona Hoy (Realidad del Compilador)
Puedes construir un Knowledge<T> y extraer explícitamente el T subyacente:
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")
}
}
La propiedad clave es sin unwrap silencioso: el código debe decir por qué está descartando información epistémica.
En la Spec / Diseño de la Stdlib (Modelo Epistémico Completo)
La especificación del lenguaje y el diseño de la stdlib buscan que Knowledge<T> lleve (como mínimo):
- una estimación puntual (
value: T) - incertidumbre (por ejemplo, varianza)
- confianza/credibilidad
- procedencia (de dónde vino y cómo se transformó)
Verás este modelo más rico en el módulo epistémico de la stdlib (y en la spec formal), incluso si algunos campos y reglas de propagación aún no se aplican en todo modo del compilador.
Guía Práctica
- Mantén los valores como
Knowledge<T>tanto como puedas. - Usa
unwrap(...)solo en el borde donde realmente necesites unTplano (y registra el motivo).