Я читаю Advanced R by Hadley Wickham, где представлены некоторые очень хорошие упражнения. Один из них просит описать эту функцию:Понимание оценки входных аргументов функций
f1 <- function(x = {y <- 1; 2}, y = 0) {
x + y
}
f1()
Может кто-нибудь помочь мне понять, почему он возвращает 3? Я знаю, что что-то называется ленивой оценкой входных аргументов и, например, другое упражнение просит описание этой функции
f2 <- function(x = z) {
z <- 100
x
}
f2()
и я правильно предсказал, что вы будете 100; x
получает значение z
, которое вычисляется внутри функции, а затем возвращается x. Однако я не могу понять, что происходит в f1()
.
Спасибо.
РЕАЛЬНЫЙ ответ: каждый, кто пишет такой код, должен быть вынужден смотреть 24 часа видео Дональда Трампа или пока их глаза не растают, в зависимости от того, что наступит раньше. –
Это не часть какого-либо кода, а en exercise :) – Celdor