1

申し訳ありませんが、これは少し複雑です。

引数式をキャプチャしたいが、それがどの環境で評価されるべきかについても知りたい。次のようなもの:

make.promise = function(x = print(b), b = 7) {
    expr = substitute(x)
    env  = parent.frame()

    function() {
        eval(expr, env)
    }
}

p1 = (
    function() {
        a = 2
        make.promise(print(a))
    }
)()

p2 = make.promise()

問題は、引数が指定されていない場合x、その環境がのローカル環境になり、それmake.promise()を検出する方法がわからないことです。私以外substituteにも環境を捉える機能はありますか?

4

1 に答える 1

0

の最も単純な実装は次のmake.promiseようになります。

make.promise <- function(x) {
    function() x
}

しかし、それはあなたが探しているものではないと思います。関連付けられている環境を見つける方法を知りません。r-devel メーリング リストに電子メールを送ってみてください。

于 2011-06-27T12:56:58.760 に答える