İşte R kodum. Fonksiyonlar şu şekilde tanımlanır:
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)
}
Çalışan hata:
> test () test ()
hatası:
zaten değerlendirilmekte olan söz: özyinelemeli varsayılan bağımsız değişken başvurusu veya önceki sorunlar?
Ben tanımını yerine ise f
o yer g
, o zaman hata ortadan kalkar.
Hatanın ne olduğunu merak ediyordum? Tanımını ait yerine geçmez nasıl düzeltmek için f
o içinde g
? Teşekkürler!
Güncelleme:
Teşekkürler! İki soru:
(1) işlev test
daha ileri bir argüman alırsa f
, benzer bir şey ekler misiniz test <- function(g.=g, T=1, f..=f){ g.(1,T, f.=f..) }
? Daha fazla özyineleme olan durumlarda, daha fazlasını eklemek iyi ve güvenli bir uygulamadır . ?
(2) f
örneğin bir işlev olmayan argüman ise g <- function(x, T, f=f){ exp(-f*x/T) }
ve test <- function(g.=g, T=1, f=f){ g.(1,T, f=f.) }
hem resmi hem de gerçek işlevsel olmayan argümanlar için aynı adı kullanmak iyi ve güvenli bir uygulama mı yoksa bazı potansiyel sorunlara neden olabilir mi?