誰でもこのコードで間違っていることを私に説明することはできますか?私は私がここでやっていると思ったことは、グローバル変数a=5
再帰的なデフォルトの引数参照
a
そして、もう一つの引数を取る関数fun
の定義の宣言
- です私はローカル変数
a
がグローバル変数a
のコピーになり、関数コードのどの時点でもグローバル変数よりも優先されます(a
)(unles私は特にget("a", envir=parent.frame)
を使用します)しかし、私は間違っている必要があります。それはなぜ許されないのですか?
> a = 5 > fun = function(a=a) { a + 1 } > fun(4) [1] 5 > fun() Error in fun() : promise already under evaluation: recursive default argument reference or earlier problems?
[フォーマットのヘルプを読む](http://stackoverflow.com/editing-help)に少し時間をかけてください。 –
最終的には、 'fun < - function(a = environment(fun)$ a){a + 1}'のようなコードを作成したかったとします。 – jogo