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

Knowledge<T>

Η επιστημική value type του Sounio: ρητό unwrap, χωρίς σιωπηλή απώλεια αβεβαιότητας.

Knowledge<T>

Το Knowledge<T> είναι η επιστημική value type του Sounio: μια τιμή μαζί με metadata για το πόσο γνωστή είναι.

Τι Λειτουργεί Σήμερα (Πραγματικότητα του Compiler)

Μπορείτε να κατασκευάσετε Knowledge<T> και να εξαγάγετε ρητά το υποκείμενο T:

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

Το βασικό χαρακτηριστικό είναι no silent unwrap: ο κώδικας πρέπει να πει γιατί πετάει επιστημική πληροφορία.

Στη Spec / Στο Stdlib Design (Πλήρες Επιστημικό Μοντέλο)

Η προδιαγραφή και ο σχεδιασμός της stdlib στοχεύουν το Knowledge<T> να κουβαλά (τουλάχιστον):

  • μια point estimate (value: T)
  • αβεβαιότητα (π.χ. variance)
  • confidence/credibility
  • provenance (από πού προήλθε, και πώς μετασχηματίστηκε)

Θα δείτε αυτό το πιο πλούσιο μοντέλο στο επιστημικό module της stdlib (και στη formal spec), ακόμη κι αν κάποια fields και κανόνες propagation δεν επιβάλλονται σε κάθε compiler mode σήμερα.

Πρακτική Καθοδήγηση

  • Κρατήστε τις τιμές ως Knowledge<T> όσο γίνεται.
  • Χρησιμοποιήστε unwrap(...) μόνο στο boundary όπου πραγματικά χρειάζεστε plain T (και καταγράψτε το γιατί).

Επόμενο