pprint-exit-if-list-exhausted — 논리 블록 종료 신호

pprint-exit-if-list-exhausted — 논리 블록 종료 신호

pprint-logical-block 안에서 리스트를 순회하다 보면, 언제 리스트가 끝났는지 알아야 할 때가 있어요. pprint-exit-if-list-exhausted지역 매크로(Local Macro) 로, 현재 논리 블록에 넘겨진 리스트가 소진됐는지 검사해서 끝났으면 블록 실행을 종료해요.

출처: PPRINT-EXIT-IF-LIST-EXHAUSTED - Common Lisp HyperSpec

시그니처

pprint-exit-if-list-exhausted <no arguments> => nil

본문

인자와 값

없음.

설명

*어휘적으로 현재인 논리 블록(lexically current logical block)*에 넘겨진 list가 소진되었는지 검사해요. — Section 22.2.1.1 (Dynamic Control of the Arrangement of Output) 참고. 이 listnil로 줄어들었다면, 접미사(suffix) 출력을 제외하고 어휘적으로 현재인 논리 블록의 실행을 종료해요. 그렇지 않으면 nil을 돌려줘요.

이 매크로가 전역 환경에서 fbound인지 여부는 구현에 따라 달라요(implementation-dependent). 다만 재정의(redefinition)와 shadowing에 대한 제약은 COMMON-LISP 패키지에 속하면서 전역 환경에서 fbound심볼들과 동일해요. pprint-logical-block 밖에서 이 매크로를 사용하려 하면 그 결과는 정의되어 있지 않아요(undefined).

예제

없음.

Exceptional Situations

pprint-logical-block 호출 안에서 어휘적으로 벗어난 곳에서 사용되면 (매크로 확장 시점이든 실행 시점이든) 오류가 신호돼요. 또한 어휘적으로 감싸는 pprint-logical-block의 동적 범위(dynamic extent) 밖에서 실행되면 그 결과는 정의되지 않아요.

더 알아보기

  • pprint-logical-block — 논리 블록 시작
  • pprint-pop — 논리 블록에서 요소 꺼내기