0

純粋関数:

  1. 特定の入力に対して常に同じ結果を返す
  2. 副作用を生じさせない

これにより、プログラムの動作を変更せずに式を値に置き換えることができる参照透過性が得られます。

これは、プログラムの実行環境でエンティティの破壊的な変更 (更新) を除外する場合、プログラムは純粋に機能していると言えることを示しています。

このコメンテーターは次のように書いています。

アプリケーション自体がミューテーションのプロトコル (スタック) であることを考慮して、FP 設定の「純粋」が実際に意味するものに取り組んでいます。

私の質問は、アプリケーションがスタックを変更した場合、関数型プログラミングの「純粋」とはどういう意味ですか?

4

1 に答える 1

2

関数がスタックを変更するという事実は、マシンの実装の結果です。「値」を使用するにはプロセッサコアのレジスタを変更する必要があるという事実が問題ではないのと同じように、pure を定義することは問題ではありません。

関数がそれ自体のスタック フレームの外部にあるもの (グローバル変数、io、ランダム性など) を変更 (または依存) しない場合でも、それは純粋であると見なすことができます。

于 2016-03-11T04:10:20.063 に答える