1

Opaでは機能を部分的に適用することが可能です。ただし、関数にすべての引数を指定して、引数を取らない関数を返したいと思います。例えば:

function make-thunk(f, a) { function() { f(a) } }

上記のコードは正常に動作しますが、1 つの問題があります。これは、引数を 1 つだけ取る関数にしか適していません。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 に答える