純粋関数:
- 特定の入力に対して常に同じ結果を返す
- 副作用を生じさせない
これにより、プログラムの動作を変更せずに式を値に置き換えることができる参照透過性が得られます。
これは、プログラムの実行環境でエンティティの破壊的な変更 (更新) を除外する場合、プログラムは純粋に機能していると言えることを示しています。
ソフトウェア トランザクション メモリを見ると、同時実行コンピューティングで共有メモリへのアクセスを制御するためのデータベース トランザクションに類似した同時実行制御メカニズムが見られます。しかし、それ自体で特に機能するものは何もありません。
私の質問は、Clojure の STM を「機能的」と見なすことができるかということです。