2012-02-29 5 views
2

"関数アプリケーション"という言葉が使われています(主にHaskellに関連しています)。 "関数呼び出し"を意味するようです。 wikipedia pageは、基本的な数学的関数を呼び出すための用語を呼び出す:数学の関数アプリケーションと関数呼び出しの間には何がありますか?

、機能アプリケーションの範囲から対応する値を得るようにそのドメインからの引数に関数を適用する行為です。

関数と関数のアプリケーションの呼び出しの違いは何ですか?

+3

同じことを意味します。 –

答えて

1

ベアボーン説明:

ハスケルやその他の関数型言語は、限りの機能が何のためにあるのかなどはるかに抽象的数学です。

手続き型言語では、関数を呼び出します。関数は、データで動作する場合と動作しない場合があります。

機能的な言語では、データがあり、それに関数を適用してデータを処理します。

2

関数を呼び出すことは、プログラミング言語でランタイム操作を呼び出すことを暗示しているように思われます。これは、関数の結果を把握する抽象化を実行します。関数アプリケーションは、いつでも、例えばコンパイル時、構文上、または数学的に関数アプリケーションを話すときに使用する一般化された用語のようです。

機能アプリケーションはapplyも参照してください。歴史的には様々なプログラミング言語で、applyは関数参照と引数リストをとり、その結果はf(引数リスト)でなければならない上位関数です。

ハスケルでは、関数アプリケーションは関数を1つの引数でカリングしている可能性が高いと考えられます。 Haskellでは、のスペースは、関数アプリケーションを表します($オペレータはLISPではなく、括弧を少なくするために優先順位/グループを変更するだけです)。これを基本代数で学んで、非関数型プログラミングで使用する "ノーマル"表記と比較してください。ここで、f(a,b,c)は引数a,b,cに適用される関数fを表します。実際に関数を呼び出す抽象化を扱っていない限り、「関数を呼び出す」という言葉を使用するとは思いません。私はハスケルが持っていることすらわからない。例えば、Haskellは、パターンマッチングによって関数を減らす抽象化を持っているかもしれません。あるいは、 "関数を呼び出す"ことを使用することは、Haskellでは合理的かもしれません。

関連する問題