2. Concepts 까지의 표현식만을 사용하면 고정된 행마법을 모두 만들 수 있습니다.

3. Controls 에서는 보다 고차원적이고 유동적인 행마법을 만드는 도구를 소개합니다.

프로그래밍에 익숙하다면 쉽게 이해할 수 있을 것입니다.

false값 종료 규칙을 무시하거나 오히려 false를 이용하는 특별한 '제어식'들이 있습니다. 이 식들은 '식 연쇄'의 실행 흐름(어떤 식이 다음에 실행될지)을 직접 제어합니다.

연쇄 종료 규칙의 5가지 예외

다음 5가지 식은 직전 식이 false를 반환했더라도 식 연쇄를 종료시키지 않습니다.

  1. while
  2. jmp(n)
  3. jne(n)
  4. not
  5. label(n)

1. while, jmp(n), jne(n): 점프 제어

이 식들은 false를 받아도 연쇄를 멈추는 대신, 항상 true를 반환하여 연쇄의 생명을 이어갑니다. 바로 이 식들이 행마법을 유연하게 만드는 초석이 됩니다.

jne로 프로그래밍의 if를 만들 수 있습니다. 바로 앞의 식이 false면 점프하는 행동을 이용해서, 특정 구간 뒤로 점프하도록 한다면 그 사이의 식들은 jne 앞의 조건이 만족될 때만 실행됩니다. 4.1 Example: Bouncing-Bishop 에 이러한 사용법이 등장합니다.

2. not: 값 반전

not은 논리를 제어하는 가장 간단한 식입니다. 3.3 Look around 과 함께 유용하게 쓰일 수 있습니다.