Product Design, Manufacturing & Innovation Resources
» R에서의 어휘적 범위 지정

R에서의 어휘적 범위 지정

1980
  • Gerald Jay Sussman
  • Guy L. Steele Jr.
Computer programmer demonstrating lexical scoping in R programming language.

(설명을 위한 생성된 이미지입니다)

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에서 널리 활용됩니다.

UNESCO Nomenclature: 1203
컴퓨터 과학

유형

추상 시스템

분열

점진적

용법

널리 사용됨

전구체

  • 프로그래밍 언어에서 스코프의 개념
  • Lisp 프로그래밍 언어와 그 방언들
  • 어휘적 스코프를 대중화한 Scheme 프로그래밍 언어
  • 함수와 스코프에 대한 이론적 기초로서의 람다 미적분

응용 프로그램

  • 함수형 프로그래밍을 위한 R에서의 클로저 생성
  • 변수 충돌을 방지하기 위한 패키지 네임스페이스 개발
  • dplyr과 같은 패키지에서 사용되는 비표준 평가 기법을 활성화합니다.
  • 부작용 없이 견고하고 모듈화된 코드를 작성합니다.

특허:

    잠재적 혁신 아이디어

    현재 하루 4만 건이 넘는 봇 트래픽을 차단하기 위해 이 콘텐츠는 커뮤니티 회원만 이용할 수 있습니다.
    > 로그인 < 또는 >등록 < 이 콘텐츠를 비롯한 모든 제한된 콘텐츠와 도구는 (100% 무료로) 이용할 수 있습니다.

    관련 개념: 어휘적 스코핑, 정적 스코핑, 함수형 프로그래밍, R, Scheme, 환경, 클로저, 자유 변수, 네임스페이스, 비표준 평가.

    역사적 맥락

    R에서의 어휘적 범위 지정

    1973
    1980
    1980
    1980
    1982-07-01
    1988-06-01
    1990
    1970-01-01
    1975-06-01
    1980
    1980
    1980
    1986-01-01
    1990
    1990

    (날짜를 알 수 없거나 관련이 없는 경우, 예를 들어 "유체역학"의 경우, 주목할 만한 등장 시기를 대략적으로 추정하여 제공합니다.)

    관련 발명, 혁신 및 기술 원칙

    고화질 이미지 및 다운로드는 등록된 회원에게만 100% 무료로 제공됩니다.

    > 로그인 <