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