{ } 블록의 두 가지 핵심 규칙

{ } 블록은 식 연쇄 안에 작은 주머니를 만드는 것과 같습니다. 이 주머니는 두 가지 규칙을 가집니다.

{} 자체도 식이기 때문에, 앞뒤의 다른 표현과 띄어 써야 합니다. move(1, 0) {move(1,0)}; 은 틀린 식 연쇄이고, move(1, 0) { move(1,0) }; 처럼 써야 합니다.

1. 종료의 격리 (Failure Isolation)

{ } 블록 안에서 식이 ❌ false를 보고하더라도, 식 연쇄 전체가 종료되지 않습니다.

대신, 해당 { } 블록의 실행만 즉시 중단되고, 실행 순서는 닫는 괄호 } 바로 다음 식으로 점프합니다.

2. '기준 위치'의 복원 (Anchor Scoping)

{ } 블록은 시작할 때({)의 기준 위치 🌟를 체크포인트처럼 저장해 둡니다.

블록 안에서 move 등으로 🌟기준 위치가 아무리 멀리 이동했더라도,

블록이 끝나면(}), 🌟기준 위치는 저장해둔 체크포인트 위치로 즉시 복원됩니다.


"Y"자 행마 예시 분석

이 두 규칙이 어떻게 "Y"자 행마를 만드는지 시각화해 봅시다.

move(0, 1) { move(1, 1) } move(-1, 1);

초기 상태: 🌟 [c2]

♟️🌟

1. move(0, 1) 실행:

2. { 실행:

3. move(1, 1) (블록 내부) 실행: