Ich versuche zu verstehen, wie faul Bewertung in R funktioniert. Gilt es nur für die Auswertung von Funktionsargumenten? Weil ich das verstehe, z.B.Understanding faule Bewertung in R
f <- function(x = x, y = x*2) {
c(x, y)
}
f(2)
[1] 2 4
Aber in anderen Sprachen, z.B. Haskell, faule Auswertung bedeutet, dass ein Funktionsaufruf nur ausgewertet wird, wenn er jemals tatsächlich verwendet wird. So würde ich erwarten, so etwas wie dies in einem Augenblick laufen:
g <- function(x) {
y <- sample(1:100000000)
return(x)
}
g(4)
Aber es wertet deutlich den sample
Aufruf obwohl ihr Ergebnis gewöhnt nicht.
Konnte jemand genau erklären, wie das funktioniert, oder mich in die Richtung zeigen, wo es im Detail erklärt wird?
ähnliche Fragen:
Question with similar wording, but different problem
Ich beziehe mich auf Hadley Wickham Buch, in dem er erwähnt: „standardmäßig R Funktionsargumente faul sind, werden sie nur dann ausgewertet, verwendet werden, wenn tatsächlich“. Stimmt das nicht mit den neuesten Versionen? – Sarang
Beachten Sie, dass die Frage diesen Satz "Gilt es nur für die Auswertung von Funktionsargumenten?" Meine Antwort widerspricht Wickhams Aussage nicht. –