在 Opa 中,可以部分应用函数。但是,我想提供一个带有所有参数的函数,并返回一个不带参数的函数。例如:
function make-thunk(f, a) { function() { f(a) } }
上面的代码运行良好,但有一个问题:它只适用于只接受一个参数的函数。我很好奇 Opa 是否可以使上述内容更通用,因此该函数可用于任意数量的函数。
我无法在 Opa API、论坛、IRC、Github 或 SO 上找到有关 apply- (scheme) 或 call- (prolog) 之类的函数的信息,所以在这里我希望我在某个地方错过了一些东西。;-)(有一些 @lazy 关键字的痕迹,但没有解释或文档,所以我没有保留参考,抱歉。)
为了进一步澄清/说明:如果 Opa 是方案,我将编写以下代码:
(define (make-thunk f . args)
(lambda () (apply f args)))