1

在 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)))
4

1 回答 1

1

如果你想传递任意数量的参数,make-thunk那么你必须使用一个元组:

function f((a,b,c)) {
   ...
}

args = ("a","b","c")
make-thunk(f, args)

顺便说一句,你在哪里找到提到的@lazy

于 2013-01-16T14:56:35.517 回答