申し訳ありませんが、これは少し複雑です。
引数式をキャプチャしたいが、それがどの環境で評価されるべきかについても知りたい。次のようなもの:
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
にも環境を捉える機能はありますか?