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

Knowledge<T>

O tipo epistêmico de valor do Sounio: unwrap explícito, sem perda silenciosa de incerteza.

Knowledge<T>

Knowledge<T> é o tipo epistêmico de valor do Sounio: um valor pareado com metadados sobre o quão conhecido ele é.

O que Funciona Hoje (Realidade do Compilador)

Você pode construir um Knowledge<T> e extrair explicitamente o T subjacente:

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")
    }
}

A propriedade principal é sem unwrap silencioso: o código precisa dizer por que está descartando informação epistêmica.

Na Spec / Design da Stdlib (Modelo Epistêmico Completo)

A especificação da linguagem e o design da stdlib buscam que Knowledge<T> carregue (no mínimo):

  • uma estimativa pontual (value: T)
  • incerteza (por exemplo, variância)
  • confiança/credibilidade
  • proveniência (de onde veio, e como foi transformado)

Você verá esse modelo mais rico no módulo epistêmico da stdlib (e na spec formal), mesmo que alguns campos e regras de propagação não estejam aplicados em todo modo do compilador ainda.

Orientação Prática

  • Prefira passar Knowledge<T> pelo seu pipeline sem alterá-lo.
  • Só use unwrap(...) na borda onde você realmente precisa de um T puro (e registre o motivo).

Próximo