Hadley의 Advanced R에서이 예제를 발견했습니다. 내 질문은 함수를 정의한 후, j (1)은 j (1)()이 출력하고있는 것으로 가정 된 내부 함수 정의를 출력합니까? 직관적으로, 난 j (1) 출력해야한다고 생각합니다 [1] 1 2
R 함수의 이름 마스킹 - Hadley의 Advanced R
아무도 실제로 무슨 일이 일어나고 있는지 설명 할 수 있을까요? j (1)과 j (1)()의 차이점은 무엇입니까?
> j <- function(x) {
+ y <- 2
+ function() {
+ c(x,y)
+ }
+ }
> k <- j(1)
> k()
[1] 1 2
> j(1)
function() {
c(x,y)
}
<environment: 0x7fa184353bf8>
> j()
function() {
c(x,y)
}
<environment: 0x7fa18b5ad0d0>
> j(1)()
[1] 1 2