Sto leggendo The Rust Programming Language e ho trovato il seguente passaggio:
Ricorda che scrivere su una struttura non è un'operazione atomica e molte funzioni come
vec.push()
possono riallocare internamente e causare comportamenti non sicuri, quindi anche la monotonia potrebbe non essere sufficiente per giustificareUnsafeCell
È appena uscito dal nulla nel libro e ho avuto delle difficoltà online a cercare di trovare cosa significhi esattamente in questo contesto. Troppe informazioni riguardano il concetto di "monotonicità" delle funzioni matematiche, che già conoscevo ma apparentemente non è molto utile.
Mi è sembrato di trovare solo questo articolo che ne parla.
Ora, oltre a rispettare l'uguaglianza in modo ovvio, includo anche la stipula secondo cui un programma funzionale deve rispettare la monotonia delle osservazioni. Cosa intendo con questo? Deve essere che una volta che hai osservato qualcosa in un determinato momento, ciò non cesserà di essere evidente in futuro. Ciò è analogo alla proprietà di monotonicità nella semantica di Kripke o Beth.
Tuttavia, anche questo è abbastanza astratto e non sono sicuro che parli della stessa cosa.