표현식과 평가 순서

평가 순서는 관측 가능하며 고정됩니다. 연산자를 먼저, 피연산자를 왼쪽에서 오른쪽으로 평가한 뒤 인자 수를 검사하고 프로시저에 진입합니다.

한눈에 보기

LISPEX
(define x 0)
(list (begin (set! x 1) x) (begin (set! x (+ x 1)) x))

결과

OUTPUT
(1 2)

현재 보장

  • let 초기식은 바깥 환경에서 왼쪽부터 평가하고 let*은 바인딩마다 확장하며 letrec은 모든 셀을 먼저 할당합니다.
  • 시퀀스는 왼쪽부터 평가하며 마지막이 아닌 값 패킷은 버립니다.
  • andor는 왼쪽부터 단락 평가하며 #f만 거짓입니다.

경계

  • 리스펙스는 다른 Scheme 구현의 미지정 피연산자 순서를 상속하지 않습니다.
  • 인자 수 오류는 규정된 연산자·피연산자 평가가 끝난 뒤 발생합니다.