Το Πρώτο Σας Πρόγραμμα
Ένα μικρό end-to-end πρόγραμμα που κάνει compile σήμερα, μαζί με την spec-level επιστημική εκδοχή.
Το Πρώτο Σας Πρόγραμμα
Αυτή η σελίδα δείχνει δύο εκδοχές της ίδιας ιδέας:
- Ένα πρόγραμμα που κάνει compile και run σήμερα με το τρέχον
souctoolchain - Την spec-level επιστημική εκδοχή (όπου αβεβαιότητα + μονάδες επιβάλλονται πλήρως)
Έκδοση A: Κάνει Compile Σήμερα (Knowledge + Ρητό Unwrap)
Στον τρέχοντα compiler, το 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: Spec-Level Επιστημικό BMI (Aspirational)
Η προδιαγραφή της γλώσσας και ο σχεδιασμός της stdlib υποστηρίζουν:
- μονάδες μέτρησης (π.χ.
kg,m) - μετρήσεις με αβεβαιότητα
- έλεγχο ροής βάσει confidence
Όταν αυτά ενσωματωθούν πλήρως, η ίδια ιδέα μοιάζει ως εξής:
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")
}
}
Τι Ακολουθεί;
- Μάθετε για Επιστημικούς Τύπους
- Διαβάστε
Knowledge<T> - Εξερευνήστε Effects