R은 스킴 언어에서 계승된 개념인 어휘적 스코프를 사용합니다. 즉, 함수 내의 자유 변수 값은 함수가 호출되는 환경이 아니라 함수가 정의된 환경에서 찾아 결정됩니다. 이는 함수의 동작을 더욱 예측 가능하게 만들고 호출 컨텍스트에 독립적으로 만들어주며, 함수형 프로그래밍의 핵심 특징입니다.

(설명을 위한 생성된 이미지입니다)
R은 스킴 언어에서 계승된 개념인 어휘적 스코프를 사용합니다. 즉, 함수 내의 자유 변수 값은 함수가 호출되는 환경이 아니라 함수가 정의된 환경에서 찾아 결정됩니다. 이는 함수의 동작을 더욱 예측 가능하게 만들고 호출 컨텍스트에 독립적으로 만들어주며, 함수형 프로그래밍의 핵심 특징입니다.
Lexical scoping, also known as static scoping, is a fundamental convention for looking up variable names in a programming language. In R, when a function needs to access a variable that is not defined locally (a “free variable”), it searches for that variable in the environment where the function was created. This “creation environment” is permanently attached to the function. This contrasts with dynamic scoping, used in some older languages, where the search would proceed up the chain of function calls (the “calling environment”).
예를 들어, 변수 `x`를 사용하지만 정의하지 않은 함수 `f()`를 생각해 보세요. `f()`가 전역 환경에서 정의되고 `x`가 10으로 설정되어 있다면, `f()`가 어디에서 호출되든 항상 `x = 10`을 사용합니다. 심지어 자체적으로 지역 변수 `x = 20`을 가진 다른 함수에서 호출되더라도, `f()`는 호출 환경의 `x`를 무시하고 자신이 정의된 환경의 `x`를 사용합니다. 이러한 동작 덕분에 함수의 동작은 오직 함수 자체의 코드와 함수가 정의된 환경에 의해서만 결정되므로 디버깅과 코드 이해가 훨씬 쉬워집니다.
이 기능은 함수형 프로그래밍 패러다임에 매우 중요하며, 함수가 생성된 환경을 '기억'할 수 있는 클로저와 같은 강력한 구조를 가능하게 합니다. 이는 고급 R 프로그래밍 및 패키지 개발, 예를 들어 `lapply` 계열 함수나 웹 애플리케이션용 프레임워크인 Shiny에서 널리 활용됩니다.
현재 하루 4만 건이 넘는 봇 트래픽을 차단하기 위해 이 콘텐츠는 커뮤니티 회원만 이용할 수 있습니다.
> 로그인 < 또는 >등록 < 이 콘텐츠를 비롯한 모든 제한된 콘텐츠와 도구는 (100% 무료로) 이용할 수 있습니다.
R에서의 어휘적 범위 지정
(날짜를 알 수 없거나 관련이 없는 경우, 예를 들어 "유체역학"의 경우, 주목할 만한 등장 시기를 대략적으로 추정하여 제공합니다.)
고화질 이미지 및 다운로드는 등록된 회원에게만 100% 무료로 제공됩니다.
> 로그인 <