한국어: Promise 객체
한국어: Promise 객체 (Promise objects)
R의 지연 평가(lazy evaluation) 메커니즘을 이해하려면 promise 객체를 알아야 해요. 이 객체는 값, 표현식, 환경이라는 세 개의 슬롯으로 이루어져 있답니다.
본문
Promise 객체는 R의 지연 평가 메커니즘의 일부입니다. 이 객체는 세 개의 슬롯, 즉 값(value), 표현식(expression), 환경(environment)을 담고 있어요. 함수가 호출되면 인자들이 매칭된 다음, 각 형식 인자(formal argument)는 promise에 바인딩됩니다. 그 형식 인자에 주어진 표현식과 함수가 호출된 환경을 가리키는 포인터가 promise에 저장되지요.
해당 인자에 접근하기 전까지는 promise에 연결된 값이 없어요. 인자에 접근하면 저장된 표현식이 저장된 환경에서 평가되고, 그 결과가 반환됩니다. 그 결과는 promise에 의해 저장되기도 합니다. substitute 함수는 표현식 슬롯의 내용을 추출해 주는데, 덕분에 프로그래머는 promise와 연결된 값 또는 표현식 중 원하는 쪽에 접근할 수 있어요.
R 언어 내에서 promise 객체는 거의 항상 암묵적으로만 보입니다. 실제 함수 인자가 바로 이 타입이거든요. 또한 delayedAssign 함수를 사용하면 표현식으로부터 promise를 만들 수도 있어요. R 코드에서는 일반적으로 어떤 객체가 promise인지 아닌지 확인할 방법이 없고, promise의 환경을 알아내는 R 코드를 작성할 수도 없답니다.