Continuation Marks: with-continuation-mark
Continuation Marks: with-continuation-mark
with-continuation-mark은 연속(continuation)에 마크(mark)를 다는 구문 폼이에요. 핸들러나 동적 변수처럼 동작하는 메커니즘이라고 이해하면 쉬워요.
출처: Racket Reference
본문
(with-continuation-mark key-expr val-expr result-expr)
syntax
key-expr, val-expr, result-expr 표현식은 순서대로 평가돼요. key-expr를 평가해 키(key)를 얻고 val-expr를 평가해 값을 얻은 다음, 그 키는 현재 연속의 초기 연속 프레임(continuation frame)에 있는 연속 마크로 값에 매핑돼요. 프레임이 이미 그 키에 대한 마크를 갖고 있다면 그 마크는 교체돼요. 마지막으로 result-expr가 평가돼요. result-expr를 평가하는 연속은 with-continuation-mark 표현식의 연속이에요 (그래서 result-expr의 결과는 with-continuation-mark 표현식의 결과가 되고, result-expr는 with-continuation-mark 표현식에 대해 꼬리 위치에 있어요).
Continuation Marks 문서에서 연속 마크에 대한 더 자세한 내용을 볼 수 있어요.