Ecco il mio codice R. Le funzioni sono definite come:
f <- function(x, T) {
10 * sin(0.3 * x) * sin(1.3 * x ^ 2) + 0.001 * x ^ 3 + 0.2 * x + 80
}
g <- function(x, T, f=f) {
exp(-f(x) / T)
}
test <- function(g=g, T=1) {
g(1, T)
}
L'errore di esecuzione è:
> test ()
Errore nel test ():
promessa già in fase di valutazione: riferimento argomento predefinito ricorsivo o problemi precedenti?
Se sostituisco la definizione di fin quella di g, l'errore scompare.
Mi chiedevo quale fosse l'errore? Come correggerlo se non si sostituisce la definizione di fin quella di g? Grazie!
Aggiornare:
Grazie! Due domande:
(1) se la funzione testaccetta ulteriormente un argomento f, aggiungerai qualcosa del genere test <- function(g.=g, T=1, f..=f){ g.(1,T, f.=f..) }? Nei casi con più ricorsioni, è una buona pratica sicura aggiungere altro . ?
(2) se fun argomento non funzionale, ad esempio , g <- function(x, T, f=f){ exp(-f*x/T) }e l' test <- function(g.=g, T=1, f=f){ g.(1,T, f=f.) }uso dello stesso nome per argomenti non funzionali sia formali che reali è una pratica buona e sicura o può causare qualche potenziale problema?