... partial application(或部分功能应用程序)是指修复a的过程 函数的参数个数,产生较小的arity的另一个函数。
我想知道以下是否有特定名称:(伪代码!)
// 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)
在函数式编程中是否有这个名称?或者它只是部分应用程序,其中未绑定的参数恰好是一个函数
答案 0 :(得分:1)
实际上,除了部分应用之外,您的call_N
功能还有更多功能。有两点需要注意:
当您将call_1
或call_2
应用于参数时,可以立即将其丢弃; 你用它们做的所有将是一个尾调用。
您可以编写类似的函数,这些函数不仅仅应用参数,而是保留一段时间;这实际上让函数抓住了它们的评估上下文,并通过“跳回”到以前的上下文来提供实现复杂流控制的技术。
如果你采用上述两点并按照这个概念运行,你最终会得到continuation-passing style。