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

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?