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了一個說法,他們可以立即丟棄; 應有盡有你與他們做了一個尾巴呼叫。

  • 你可以寫不只是適用的說法類似的功能,但守住了一段時間;這基本上可以讓函數抓住他們的評估上下文,並且提供通過「跳回」到前一個上下文來實現複雜流量控制的技術。

如果您採取以上兩點並運行該概念,您最終將以continuation-passing style結束。

+0

謝謝...我的頭有點從維基百科的文章,雖然:-) –

+0

@馬丁頭暈:不要擔心。對於幾乎每個人都會考慮延續太多。 :] –