問題タブ [side-effects]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
3 に答える
337 参照

monads - 純粋関数型プログラミング言語における副作用のメソッド

現時点では、副作用を純粋な関数型プログラミング言語に統合する次の方法を認識しています。

  • 効果システム
  • 続き
  • ユニークなタイプ
  • モナド

モナドは、これを行うための最も効果的で最も一般的な方法であるとよく言われます。

他にどのような方法がありますか? それらはどのように比較されますか?

0 投票する
1 に答える
623 参照

objective-c - NSArray の makeObjectsPerformSelector を使用して副作用を発生させる

Objective-C プログラムに NSArray の Foos があります。各 Foo の doIt 関数を呼び出したいのですが、docsに従って、NSArray の makeObjectsPerformSelector 関数では元の Foo を変更できません。doIt セレクターは、doIt が呼び出されると、各 Foo の m データ メンバーを変更します。NSArray の各 Foo でこの関数を効率的に実行するにはどうすればよいですか?

0 投票する
2 に答える
1330 参照

java - Java:なぜこのメソッドに副作用があるのですか?

特定の変数がマークされているにもかかわらず、副作用を生成しているメソッドがありますfinal。どうしてこれなの?おそらく私は何をするのか混乱してfinalいます。

0 投票する
2 に答える
7082 参照

c# - EmptyWorkingSet を使用した場合の副作用は何ですか?

以下のコードを使用して、実行中のプログラムのメモリを解放しています。これは、自分のプログラムを高速に実行するには大きなメモリ リソースが必要だからです。

正常に動作しているようです。エクスプローラーなどの一部のプログラムのメモリ使用量を 100,000 Kb から 2,000 Kb に下げることができました。それはかなり良いですが、これを行うことによる副作用はありますか? Yamicsoft Vista/Xp マネージャーや Firefox Optimizer などの一部の商用ソフトウェアもこれを使用しています。

0 投票する
10 に答える
3830 参照

functional-programming - 純粋な関数型プログラミングで副作用が発生する可能性はありますか

私はしばらくの間、関数型プログラミングに頭を悩ませようとしてきました。私はラムダ計算、LISP、OCaml、F#、さらには組み合わせロジックを調べましたが、私が抱えている主な問題はこれです-次のような副作用を必要とすることをどのように行うのですか?

  • ユーザーとのやり取り、
  • リモートサービスとの通信、または
  • ランダム サンプリングを使用したシミュレートの処理

与えられた入力に対して出力が決定論的であるという純粋な関数型プログラミングの基本的な前提に違反することなく?

私が理にかなっていることを願っています。そうでない場合は、理解を助けるための試みを歓迎します。前もって感謝します。

0 投票する
2 に答える
205 参照

design-patterns - きめの細かいデコレータパターン

簡単に言えば、デコレータパターンを理解しています。あるクラスが別のクラスをラップするという考え方で、デコレータメソッドは、装飾されたオブジェクトで同じメソッドを呼び出す前および/または後に他のコードを実行したいと考えています。

しかし、望ましくない副作用があるため、decoratedメソッドを単純に呼び出すことができない状況に遭遇しました。しかし、私はその装飾されたメソッドの多くを実行したいと思っています。

したがって、decoratedメソッドを複数のメソッドに分割する必要があると思います。次に、デコレータでそれらのいくつかを呼び出し、装飾コードを実行してから、他のいくつかを呼び出すことができます。不要な副作用を見逃します。

ただし、ポリモーフィズムを維持するためには、decoratedオブジェクトとdecoratorオブジェクトが実装するインターフェイスにこれらのメソッドを追加することを意味します。これは望ましくありません。それらは公開されるべきではなく、それは事実上、装飾されたクラスがそれがどのように装飾されるかについての知識を持っていることを意味します。

テンプレートパターンの方がおそらくより適切であると思います。抽象基本クラスがそれぞれの小さなメソッドを順番に呼び出し、「デコレータ」が関心のあるメソッドの代替実装を提供するだけです。しかし、これは正確には「継承よりも構成」ではないので、何をお勧めしますか?

0 投票する
7 に答える
5254 参照

functional-programming - 純粋関数型プログラミングでIOを使用するためのモナドの代替手段は何ですか?

モナドは、IOを処理するためのhaskellソリューションとして説明されています。純粋な関数型言語でIOを処理する他の方法があるかどうか疑問に思いました。

0 投票する
2 に答える
554 参照

python - python / numpyの副作用の落とし穴?ホラーストーリーと狭い脱出が欲しかった

データ分析と数値シミュレーションのために、MatlabからPython/numpyに移行することを検討しています。私はMatlab(およびSML-NJ)を何年も使用しており、副作用のない(I / Oを除く)機能環境で非常に快適ですが、Pythonの副作用については少し気が進まないです。人々は副作用に関して彼らの好きな落とし穴を共有することができますか、そして可能であれば、彼らはそれらをどのように回避したのですか?例として、Pythonで次のコードを試したとき、私は少し驚いた。

前もって感謝します

0 投票する
4 に答える
344 参照

c - 「a」の出力が-80であるのはなぜですか?

出力は100になると思いましたが、結果を見ると-80でした。角かっこを付けた場合#define XXX (ABC-XYZ)、出力は100になりますが、角かっこを付けないと、出力は-80になります。

0 投票する
5 に答える
1806 参照

functional-programming - 「ミサイル発射」の起源は何ですか?

関数型プログラミングのコンテキストでは、副作用の典型的な例は「ミサイルの発射」です。その表現は歴史的にどこから来たのですか?