0

以下に示すように、関数パラメーターに応じて cat() 出力をリダイレクトしようとしました。再帰参照によるオーバーフローやスタックオーバーフローを回避する方法がわかりません。

testme1 = function(cat=cat) {
cat("This is testme1\n")
}

testme2 = function(cat=function(...){cat(...)}) {
cat("This is testme2\n")
}

> testme1()                           # Error in testme1() : 
                                      # promise evaluation     läuft bereits: rekursive Referenz auf das Standardargument oder frühere Fehler?
> testme1(cat=cat)                    # works
> testme1(cat=function(...)cat(file="huhu.txt",...)) # works

> testme2()                           # Error: protect(): protection stack overflow
> testme2(cat=cat)                    # works
> testme2(cat=function(...)cat(file="huhu.txt",...)) # works
4

1 に答える 1