or — 첫 번째로 참이 되는 값을 돌려주기
or — 첫 번째로 참이 되는 값을 돌려주기
조건들 중 하나라도 만족되는지를 확인할 때 or만큼 간단한 게 없어요. or는 매크로로, 폼들을 왼쪽에서 오른쪽으로 하나씩 평가하다가 처음으로 참이 나오는 순간 그 값을 돌려주고 멈춰요.
시그니처
or form* => result*
본문
인자와 값
form— 폼이에요.results— 마지막으로 실행된form의 평가에서 나오는 값들 또는 주요 값이에요. (아래 설명 참고) 또는nil이에요.
설명
각 form을 하나씩, 왼쪽에서 오른쪽으로 평가해요. 어떤 form이 참(즉 nil이 아닌 것)으로 평가되면 모든 form의 평가는 그 시점에서 끝나요.
마지막 form이 아닌 어떤 form의 평가가 주요 값으로 참을 돌려주면, or는 남은 form들을 평가하지 않고 즉시 그 값을 돌려줘요(단 추가 값은 없어요). 마지막 form을 제외한 모든 form이 주요 값으로 거짓을 돌려주면, or는 마지막 form이 돌려준 모든 값을 돌려줘요. form이 하나도 주어지지 않으면 nil을 돌려줘요.
예제
(or) => NIL
(setq temp0 nil temp1 10 temp2 20 temp3 30) => 30
(or temp0 temp1 (setq temp2 37)) => 10
temp2 => 20
(or (incf temp1) (incf temp2) (incf temp3)) => 11
temp1 => 11
temp2 => 20
temp3 => 30
(or (values) temp1) => 11
(or (values temp1 temp2) temp3) => 11
(or temp0 (values temp1 temp2)) => 11, 20
(or (values temp0 temp1) (values temp2 temp3)) => 20, 30
더 알아보기
and— 모든 조건이 참일 때some— 시퀀스 조건 검사unless— 거짓일 때 실행