Estou lendo a Linguagem de programação Rust e encontrei a seguinte passagem:
Lembre-se de que escrever em uma estrutura não é uma operação atômica, e muitas funções como
vec.push()
podem se realocar internamente e causar comportamento inseguro; portanto, mesmo a monotonicidade pode não ser suficiente para justificarUnsafeCell
Ele apareceu do nada no livro e tive um tempo difícil online tentando encontrar o que exatamente significa nesse contexto. Muita informação é sobre o conceito de "monotonicidade" de funções matemáticas, que eu já sabia, mas aparentemente não é muito útil.
Eu só parecia encontrar este artigo que fala sobre isso.
Agora, além de respeitar a igualdade da maneira óbvia, também incluo a estipulação de que um programa funcional deve respeitar a monotonicidade das observações. O que quero dizer com isso? Deve ser que, depois de observar algo em determinado momento, isso não deixe de ser evidente no futuro. Isso é análogo à propriedade de monotonicidade na semântica de Kripke ou Beth.
No entanto, isso também é bastante abstrato e não tenho certeza de que ele fale da mesma coisa.