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

Το Πρώτο Σας Πρόγραμμα

Ένα μικρό end-to-end πρόγραμμα που κάνει compile σήμερα, μαζί με την spec-level επιστημική εκδοχή.

Το Πρώτο Σας Πρόγραμμα

Αυτή η σελίδα δείχνει δύο εκδοχές της ίδιας ιδέας:

  • Ένα πρόγραμμα που κάνει compile και run σήμερα με το τρέχον souc toolchain
  • Την 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")
    }
}

Τι Ακολουθεί;