Aquí está mi código R. Las funciones se definen como:
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)
}
El error de ejecución es:
> test ()
Error en test ():
promesa ya bajo evaluación: ¿referencia de argumento predeterminada recursiva o problemas anteriores?
Si sustituyo la definición de fen de g, entonces el error desaparece.
Me preguntaba cuál fue el error? ¿Cómo corregirlo si no sustituye la definición de fen g? ¡Gracias!
Actualizar:
¡Gracias! Dos preguntas:
(1) si la función testrequiere un argumento adicional f, ¿agregará algo como test <- function(g.=g, T=1, f..=f){ g.(1,T, f.=f..) }? En casos con más recurrencias, ¿es una práctica buena y segura agregar más ? ?
(2) si fes un argumento no funcional, por ejemplo , g <- function(x, T, f=f){ exp(-f*x/T) }y test <- function(g.=g, T=1, f=f){ g.(1,T, f=f.) }, ¿usará el mismo nombre para argumentos no funcionales formales y reales es una práctica buena y segura o puede causar algún problema potencial?