1

... partial application(または部分機能アプリケーション)は、関数に引数の数を固定して、より小さなアリティの別の関数を生成するプロセスを指します。用語:結合されていない引数が関数である部分的なアプリケーションですか?

私は次のために特定の名前があるかどうかを確認したいと思います:(!擬似コードは

// Given functions: 
def f(a, b) := ... 
def g(a, b) := ... 
def h(a, b) := ... 

// And a construct of the following: 
def cc(F, A, B) := F(A, B) // cc calls its argument F with A and B as parameters 

// Then doing Partial Application for cc: 
def call_1(F) := cc(F, 42, "answer") 
def call_2(F) := cc(F, 7, "lucky") 

// And the calling different matching functions this way: 
do call_1(f) 
do call_1(g) 
do call_2(g) 
do call_2(h) 

関数型プログラミングでは、このための名前がありますか?または、部分的なアプリケーションであり、バインドされていないパラメータがちょうど関数になる場合があります。

答えて

1

実際には部分的なアプリケーション以外にも、call_Nのようなものがあります。ノートの二つのこと:あなたが引数にcall_1call_2を適用すると

  • 、彼らはすぐに破棄することができます。 すべてあなたはそれらをテールコールにするでしょう。

  • 引数を適用するだけでなく、しばらくそれを保持する同様の関数を書くことができます。これは本質的に関数が評価コンテキストを把握できるようにし、複雑なフロー制御を前のコンテキストに「ジャンプバック」させる技術を提供します。

上記の2つの点を念頭に置いて実行すると、最終的にcontinuation-passing styleになります。

+0

ありがとう...私の頭はWikipediaの記事からちょっとめちゃくちゃです:-) –

+0

@マーティン:それについて心配しないでください。継続について考えることは、ほとんど誰にとってもそうです。 :] –

関連する問題