0
라고 할 때까지 개체를 찾을 수 없습니다 내가 mod()
를 제거하기 전에 어떤 식 으로든 sq()
를 호출하는 경우, 그러나R : 폐쇄 나는 R의 고차 기능에 문제가
power <- function(x , modify){
return(
function(y){
return( modify(y^x))
}
)
}
mod <- function(z){z+1}
sq <- power(x = 2,modify = mod )
# remove the function that was passed to `power()`, I expect it to be saved in the function environment:
rm(mod)
sq(2)
# Error in sq(2) : object 'mod' not found
를 문제가 발생하지 않습니다 나는 새로운 상황에서 폐쇄를 사용하기 전에 글로벌 환경에서 정의되는 mod()
과 폐쇄를 호출하는 것을 방지 할 수 있습니까
mod <- function(z){z+1}
sq(2)
rm(mod)
sq(2)
:하지만 난 경고 "In sq(2) : restarting interrupted promise evaluation"
를 얻을? 그리고 스코프와 약속의 관점에서 여기서 무엇이 일어나고 있습니까?
@DavidHeckmann : @DavidHeckmann : @DavidHeckmann : 함수에 공식 인수로 전달 된 객체는 다른 함수가 아니라 그 방식으로 동작합니다. '? force'의 예를보세요. –