引数を返す関数の名前?


34

何もせず、引数を取らず、何も返さない関数は、伝統的にa noopまたはno-op と呼ばれます。noopの例を以下に示します。

function noop(){}

http://en.wikipedia.org/wiki/NOP

それで、引数を返すだけで、他には何もしない関数を指す名前がありますか?この種の関数の例:

function(a){return a}


17
投票者へ:これは意見に基づく質問ではなく、決定的な答えがあります。
デニス

@Daenythは、「それはまた、一般的にパススルーとして知られています」 -それが表示されるおそらく決定的ではない
ブヨ

2
@gnatパススルーは、パラメーターまたは親メソッドが返すものを変更せずに親メソッドを呼び出すサブクラス内のメソッドを参照するために使用されます。ただし、スーパーメソッドは何も返さないか、まったく異なるものを返す場合があります。渡されたものと同じものを返すことは、パススルーの定義の一部ではありません。もしそうなら、それは特定の親メソッドがそれをしているからです。実際、渡された値と同じ値を返すだけのOOクラスメソッドは非常にまれです。
-itsbruce

4
@Snowmanそれは情報に基づいた声明ではありません。特定の入力に対して任意の処理を行う関数を返すことができる高次関数をサポートする言語では、状況によっては、入力を変更しない関数を返すことができると非常に便利です。キーワードではなく関数を使用して制御フローを作成できます。リスト(または他の構造)を折り畳んで複合関数を作成する場合(差分リストの場合など)、恒等関数は多くの場合自然なシード値です。
-itsbruce

回答:


65

これは恒等関数と呼ばれid、カテゴリ理論や関数型プログラミング言語のように省略されることもあります。


4
ほとんどのプログラマーは、それを知るための正式な背景知識や関数型プログラミングの知識を持っていないことに注意してください。一般的にパススルーとしても知られています。
テラスティン

5
私は正式な数学をたくさんやったが、どういうわけかこれを見て顔をなだめるまで答えを思い出せなかった。
Ixrec

5
@Telastynそして、Java 8ではまだ「アイデンティティ」と呼ばれています。この名前は、数学/機能の背景から解放され、標準になりつつあります。
イズカタ

3
確かに。また、正式なルートを持つという事実と、用語の認識の広がりにより、任意の言語固有の専門用語よりも便利になります。
-itsbruce

11
@Telastyn「パススルー」はほとんどの場合、オブジェクト指向で使用され、特にパラメーターを変更せずに親のメソッドを呼び出すメソッドを特に参照します。これは、特にOOメソッドが引数ではなく、まったく異なるものを返すことが多いため、恒等関数の概念よりも限定的で限定的です。そのため、パススルーはスーパーメソッドと同じものを返しますが、元の引数を返す必要はまったくありません。これらは異なるものです。
-itsbruce
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.