Начните новый сеанс R с пустой средой. Напишите серию функций с параметром, который будет использоваться в качестве значения параметра times
при вызове rep()
.
f <- function(n) {
rep("hello", times = n)
}
f(x)
Можно ожидать, что это потерпит неудачу, и действительно получается:
# Error in f(x) : object 'x' not found
Немного изменим функцию:
f2 <- function(n) {
ls.str()
rep("hello", times = n)
}
f2(x)
Как и ожидалось, это все еще терпит неудачу:
# Error in f2(x) : object 'x' not found
Измените еще немного (чтобы увидеть среду в консоли):
f3 <- function(n) {
print(ls.str())
rep("hello", times = n)
}
f3(x)
Я все еще ожидаю неудачи, но вместо этого получаю:
## n : <missing>
## [1] "hello"
Как будто вызов print()
заставляет rep работать, как если бы times
было установлено на 1.