最初のプログラム
いまのコンパイラで動く小さなエンドツーエンド例と、仕様レベルのエピステミック版。
最初のプログラム
今の段階で意味のある最初のプログラムは、epistemic データを明示したまま扱うものです。Knowledge<T> と意図的な unwrap 境界から始めてください。
本日時点で確認済み
Knowledge<T>は今も silent extraction ではなく、明示的な unwrap 境界を要求します。- 明示的な
with ...effect は現在も言語契約の実体です。 - 信頼度境界つき compile-fail fixture は、検証済み契約の一部です。
現在の注意点
- 不確実性と provenance の完全なモデルは、今日の検証済み artifact よりも spec と stdlib 文書の方が豊かです。
- 実際の挙動は、リポジトリ上のファイルだけではなく、使用している
soucバイナリそのものに依存します。
このリポジトリで確認する
struct KnowledgeF64 { value: f64, uncertainty: f64, confidence: f64 }
fn main() -> i32 with IO {
let dose = KnowledgeF64 { value: 42.0, uncertainty: 0.1, confidence: 0.99 }
let accepted: f64 = dose.value
println(accepted)
return 0
}
"$SOUC_BIN" check first_program.sio