이 페이지는 리스펙스 예제에서 사용하는 내장 연산자에 대한 빠른 참조입니다. 참고: 오직 #f만 거짓이며, 빈 리스트 ()는 참입니다. 불리언 결과는 #t/#f로 표기합니다.
산술 연산자
이 연산자들은 표준 수학적 계산을 수행합니다.
+ (더하기)
두 개 이상의 숫자를 더합니다.
- 인자가 없으면
0을 반환합니다. - 인자가 하나이면, 그 인자 자체를 반환합니다.
(+ 10 20 5) ;; 결과: 35
(+ 10) ;; 결과: 10
(+) ;; 결과: 0
- (빼기)
인자가 하나이면, 숫자의 부호를 바꿉니다. 두 개 이상이면, 첫 번째 숫자에서 이후의 숫자들을 뺍니다.
(- 100 20 10) ;; 결과: 70
(- 10) ;; 결과: -10
* (곱하기)
두 개 이상의 숫자를 곱합니다.
- 인자가 없으면
1을 반환합니다. - 인자가 하나이면, 그 인자 자체를 반환합니다.
(* 5 10 2) ;; 결과: 100
(* 7) ;; 결과: 7
(*) ;; 결과: 1
/ (나누기)
첫 번째 숫자를 이후의 숫자들로 나눕니다. 0으로 나누면 오류를 발생시킵니다.
(/ 100 5 2) ;; 결과: 10
modulo (나머지)
첫 번째 숫자를 두 번째 숫자로 나눈 나머지를 반환합니다. 정확히 두 개의 인자가 필요합니다.
별칭: %(비권장, modulo 사용 권장 — W330)
(modulo 10 3) ;; 결과: 1
비교 연산자
이 연산자들은 값을 비교하고 #t 또는 #f를 반환합니다.
=, == (같음)
두 값이 같은지 확인합니다. 리스트의 경우, 요소들의 깊은 재귀적 비교를 수행합니다. ==는 =의 별칭입니다.
(= 10 10) ;; 결과: #t
(= "hello" "world") ;; 결과: #f
(= (list 1 2) (list 1 2)) ;; 결과: #t
!= (같지 않음)
두 값이 같지 않은지 확인합니다. =의 반대입니다.
(!= 10 5) ;; 결과: #t
(!= (list 1 2) (list 1 2)) ;; 결과: #f
> (보다 큼)
첫 번째 숫자가 두 번째보다 큰지 확인합니다.
(> 10 5) ;; 결과: #t
< (보다 작음)
첫 번째 숫자가 두 번째보다 작은지 확인합니다.
(< 10 5) ;; 결과: #f
>= (보다 크거나 같음)
첫 번째 숫자가 두 번째보다 크거나 같은지 확인합니다.
(>= 10 10) ;; 결과: #t
<= (보다 작거나 같음)
첫 번째 숫자가 두 번째보다 작거나 같은지 확인합니다.
(<= 10 5) ;; 결과: #f
논리 연산자
이 연산자들은 불리언 논리로 작동하며 단축 평가(short-circuit)를 사용합니다.
and
#f를 만나자마자 #f를 반환합니다. 모두 참 같은 값이면 마지막 표현식의 값을 반환합니다.
(and #t #t) ;; 결과: #t
(and #t #f 10) ;; 결과: #f (#f에서 멈춤)
or
처음 만나는 참 같은 값을 반환합니다. 모두 #f이면 #f를 반환합니다.
(or #f 10 #t) ;; 결과: 10 (10에서 멈춤)
(or #f #f) ;; 결과: #f
not
반대의 불리언 값을 반환합니다. #f이면 #t, 그 외는 #f입니다.
(not #t) ;; 결과: #f
(not #f) ;; 결과: #t
(not 0) ;; 결과: #f (0은 참 같은 값)