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

你的第一个程序

一个今天就能编译运行的小例子,以及规范层面的认识论版本。

你的第一个程序

本页用同一个想法展示两个版本:

  • 使用当前 souc 工具链、今天就能编译运行 的程序
  • 规范层面的认识论版本(在不确定性 + 单位都被完全约束的世界里)

版本 A: 今天可用(Knowledge + 显式 Unwrap)

在当前编译器中,Knowledge<T> 存在,并且提取底层值需要通过 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")
    }
}

运行它:

souc run first_program.sio

版本 B: 规范层面的认识论 BMI(Aspirational)

语言规范与 stdlib 设计支持:

  • 单位(例如 kg, m
  • 带不确定性的测量
  • 基于置信度的控制流

当这些部分完全整合后,同样的想法看起来会像这样:

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

下一步