「副作用なし」に対応する名詞は?


10

関数や計算には、次のような用語があります。

  • 決定論的–決定論
  • 純粋–純度

今、副作用のないものに対応する正しい名詞は何ですか?

「副作用フリーネス」?「副作用の自由」?「非有効」?


4
これは英語の言語と使用法ではないのですか?;)いずれにしても、使用状況を教えていただけますか?この種の固有名詞を使用するのは正しくないと思うことに同意します。(私はネイティブのドイツ人に同情します。しかし、私たちそのようなモンスターを文字通り翻訳しないように自分自身を強制する必要があります。可能であれば、ほとんどの場合、ドイツ語も悪いです。)
ラファエル

1
副作用なしは純粋とは異なりますか?
Andrej Bauer

@Raphael私もそこで質問することを考えましたが、プログラミングの文脈で正しい対応する名詞について質問しているので、コンピューターサイエンティストがより良い答えをくれると思います。
rolve

3
私は純粋であることを考える@AndrejBauer 両方の副作用のないは依然として非決定的かもしれないが、副作用のないと決定論。
rolve 2013年

@Raphael実際には特定のコンテキストはありません。私は現在、決定論的で、副作用のない、純粋な関数が互いにどのように関連しているかについて考えています。そして、それぞれに名前を付けずにこれらの概念を考えると、不安になります。:D
rolve 2013年

回答:


8

文法上の質問の良い目安は、質問する必要があるほど複雑な場合は、文を言い換えるだけの方が良いということです。たとえば、「関数の副作用のないことでXが保証される」は、「関数に副作用がないため、Xが保証される」または「関数に副作用がないので、X保証されています。」

そうは言っても、記事のキーワードは名詞句であることが期待されているため、「副作用の自由」を使用する場所になります。

(ちなみに、「非有効」は形容詞です。)


(ちなみに、「非副次的」は形容詞です。)良いキャッチ...そして答えてくれてありがとう。でも残念ながら、一言だけでいいわけではありません。
rolve 2013年

8

コンテキストによっては、「副作用がない」という言葉の方が読みやすいかもしれません。


7

言葉はあるnullipotence、の名詞形nullipotent。ウィクショナリーの最初の定義から:

(数学、コンピューティング)副作用のないアクションを説明する。クエリは通常nullipotentです。クエリは有用なデータを返しますが、クエリされたデータ構造は変更しません。べき等と対比。

(強調鉱山)

http://en.wiktionary.org/wiki/nullipotent


うわー、今までこの言葉を聞いたことがありません。これは一般的には使用されていないようです(Googleは「nullipotent」に対して16'300結果、「nullipotence」に対して1'580結果を報告しており、私のブラウザーのスペルチェッカーはどちらも認識していません)。しかし、私はそれのためにそれを単に使用したかもしれません!ありがとう。
rolve 2013年

3
私はドメインの専門家であり、その用語が使用されたのを見たことがないと思います。これは悪い言葉ではありませんが、使用前に明確に定義する必要があります。
Gilles 'SO-悪をやめなさい' 11/11/6

3
これは違いが存在することを実現するために私を助けたnullpotentとはnilpotent
Val

1
@ヴァル、ええ、私は抽象代数を学ぶまで同じ意味だと思っていました。私が特に残酷だと感じているのなら、無力なものは何にも影響を与えないが、無力なものは何も影響を及ぼさない、と私はそれを説明します。:P
マシューピジアック2013年

3

私はこの概念を参照透過性として学びました。

ただし、これが実際に意味のある用語であるかどうかについては、ある程度の議論あるため、論文で使用する場合は、最初に定義する必要があります。


2
参照の透明性は、副作用がないことと同じではありません。マクロが不要な名前のキャプチャを左右に引き起こし、参照の透過性を破壊する純粋に関数型の言語を使用できます。
Kaz 2013年

@Kaz参考資料と言えば、そのマクロストーリーに関する参考資料はありますか?
rolve 2013年

@rolve私はあまりにも偏狭な見方をしている可能性があります。対照的なものについては、副作用からの解放に関連するTunesプロジェクトの参照透過性の定義を参照してください。tunes.org
Kaz

@rolve評価のコンテキストで参照透過性について考えていました。コード変換は式を再配置できますが、それらの式の参照は何があっても適切に機能します。例えば、衛生的なマクロシステムは、参照上透明であると言われています。参照とそれが参照するものとの間に「誤って不透明」なものはありません。たとえば、いくつかの非表示のコードにコンパイラによって挿入された同じ名前のシンボルのようなものです。
Kaz

@カズ:私の回答で述べたように、「参照透過性」の定義にはいくつか矛盾があります
BlueRaja-Danny Pflughoeft

2

副作用の自由は、私が使用するものです。


残念ながら、これには副作用には自由があるという解釈があり、状況には副作用がないというわけではありません。それは「副作用からの自由」によって明確に表現されます。
Kaz 2013年

3
もちろん。それは事実ですが、実際に使用されているのを見てきました。
デイブクラーク

2

関数を複数回実行しても、システムに1回実行した場合と同じ正味の影響がある場合、関数はべき等であり、べき等です。それがあなたが探しているものかどうかわからない。


1
ありがとう、それは私が考えなければならないもう1つの概念です。多分、べき等は副作用のない弱い形態であると言えるでしょう。しかし、それは私が探していたものとは正確には異なります。(そして、いずれにせよそれは名詞ではありません。
;

1
良い点-名詞形はべき等です。
Tin Man

3
べき等関数の例::chmod数回再実行できます(ファイルが変更されない限り...)。他にもたくさんあります。ただし、許可が変更されると、状況を変更し、他のプログラムが何かを実行できなくなる可能性があるため、「副作用なし」ではありません。
Olivier Dulac 2013年

1
この用語はおそらくWebプログラミングで最も重要です。データベースを変更する場合(たとえば、新しいユーザーを追加する場合)、ネットワークの信頼性に問題がある場合は、サーバーで重複したメッセージが受信されることを確認する必要があります。予期しない問題を引き起こさないでください。
Tin Man

2
べき等関数には、副作用がありません。べき等関数のN回の呼び出しには、1回の呼び出しと同じ全体的な副作用があります。効果のない関数は、べき等の特殊なケースです。
Kaz 2013年

1

ほぼ「副作用の自由」でそれを手に入れました。問題は、これがおそらく副作用がないということです(「副作用の自由」のように)。明確にするためには、「副作用からの自由」が必要です。そして、「自由」が「自由」と対にならないことに注意してください。「何かから自由」と「何かから自由」はどちらも「何かから自由」に行きます。

一般的に、文法的であるにもかかわらず、頭が「自由」である複合名詞句は、英語のネイティブスピーカーによって本能的に避けられていることがわかります。例えば、「言論の自由」と「抑圧からの自由」は「言論の自由」と「抑圧の自由」と呼ばれていません。意味は文脈から解明される可能性があります(「言論の自由」はおそらく「言論からの自由」ではなく、「抑圧の自由」は「抑圧の自由」ではありません)が、形式は単にユーフォニックではありませ。それが単に廃用によるものであったとしても、それは現状のままです。

CSの学術論文は、英語を母国語としない人々を含む世界中の読者を対象としています。可能であれば、ネイティブスピーカーのように書いてください。


説明をありがとう、それらは私には理にかなっているようです。元の投稿のように、「副作用のない」というように、ダッシュで単語を綴った場合、何か違いがありますか?それとも間違っているのでしょうか?
rolve 2013年

ハイフンは意味を変更しません。ハイフンについては、こちらをご覧ください。複合名詞のセクションが適用されます。
Kaz

1
「副作用の自由」は問題なく広く使用されています。2つの可能な解析のうち、「副作用からの自由」はよく議論される完全に賢明な概念であり、「副作用の自由」は誰も話したことのない意味がないため、実際的なあいまいさはありません。フレーズに明白な意味がある場合、人々は他の意味を探しに行くことはありません。残りの文を読むだけです。
David Richerby 2013年

1
@DavidRicherbyコメントをありがとう、私は同じことを考えていました。ただし、理論的なあいまいさが存在することを理解しておくのはやはり良いことです。
rolve 2013年

1
「副作用の自由」は標準的な慣用句です。それが合理的に意味することは1つだけあります。ergo、それが意味することです。文法は私たちを奴隷にするのではなく、私たちに役立つために存在します。
David Richerby 2013年

-1

おそらく「直交性」が必要です。それはあなたの定義にぴったり合っているようです。


答えてくれてありがとう。ただし、直交という言葉は概念にのみ使用され、計算や関数には使用されないと思います。ただし、2つの副作用のない関数は互いに干渉しないため、直交と見なすことができることは事実です。
rolve 2013年

私の理解では、「直交性」も関数に使用されていました(純粋な関数は「直交性」と呼ばれることもあったと思います)。しかし、私は間違っているかもしれません。「直交」は2番目のものが必要であるように感じます。つまり、何か他のものが直交しているので、結局、それほど一般的ではありません...
CamilB

しかし、副作用のない関数の別の用語を検索するのはなぜですか?「純粋な関数」とは、正確に次のことを意味します。確定的であり、副作用がない(Wikipediaによると)。
CamilB 2013年

それがまさにポイントです。私は副作用のない関数については推論したいのですが、必ずしも確定的ではありません。ピュアはすでに「多すぎる」。
rolve 2013年

今、私は分かる。非決定的な副作用のない関数を検索することは興味深い演習でしょう。QMでモデル化された、アトム以外は何も思いつきません:) thesaurus.comをお勧めできますか?多分そこに副作用に関連する名詞の反意語があるでしょう。また、おそらく必要な単語は、他の言語から英語に追加する必要がある単語であるかもしれません。私は今あなたを一人にしておくつもりです:)
CamilB '06 / 11/13
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.