LISP-술어
술어는 특정 조건에 대한 인수를 테스트하고 조건이 거짓이면 nil을 반환하거나 조건이 참이면 nil이 아닌 값을 반환하는 함수입니다.
다음 표는 가장 일반적으로 사용되는 술어 중 일부를 보여줍니다-
Sr. 아니. | 술어 및 설명 |
---|---|
1 | atom 하나의 인수를 취하고 인수가 원자이면 t를 반환하고 그렇지 않으면 nil을 반환합니다. |
2 | equal 두 개의 인수를 사용하고 반환합니다. t 구조적으로 동일하거나 nil 그렇지 않으면. |
삼 | eq 두 개의 인수를 사용하고 반환합니다. t 동일한 객체 인 경우 동일한 메모리 위치를 공유하거나 nil 그렇지 않으면. |
4 | eql 두 개의 인수를 사용하고 반환합니다. t 인수가 eq, 또는 동일한 값을 가진 동일한 유형의 숫자이거나 동일한 문자를 나타내는 문자 객체 인 경우 또는 nil 그렇지 않으면. |
5 | evenp 하나의 숫자 인수를 사용하여 t 인수가 짝수이거나 nil 그렇지 않다면. |
6 | oddp 하나의 숫자 인수를 사용하여 t 인수가 홀수이거나 nil 그렇지 않다면. |
7 | zerop 하나의 숫자 인수를 사용하여 t 인수가 0이거나 nil 그렇지 않다면. |
8 | null 하나의 인수를 취하고 t 인수가 nil로 평가되면 nil. |
9 | listp 하나의 인수를 취하고 t 인수가 목록으로 평가되면 그렇지 않으면 반환됩니다. nil. |
10 | greaterp 하나 이상의 인수를 취하고 t 단일 인수가 있거나 인수가 왼쪽에서 오른쪽으로 연속적으로 더 큰 경우 또는 nil 그렇지 않다면. |
11 | lessp 하나 이상의 인수를 취하고 t 단일 인수가 있거나 인수가 왼쪽에서 오른쪽으로 연속적으로 작은 경우, 또는 nil 그렇지 않다면. |
12 | numberp 하나의 인수를 취하고 t 인수가 숫자이거나 nil 그렇지 않다면. |
13 | symbolp 하나의 인수를 취하고 t 인수가 기호이면 그렇지 않으면 반환합니다. nil. |
14 | integerp 하나의 인수를 취하고 t 인수가 정수이면 그렇지 않으면 반환합니다. nil. |
15 | rationalp 하나의 인수를 취하고 t 인수가 유리수, 비율 또는 숫자이면 다음을 반환합니다. nil. |
16 | floatp 하나의 인수를 취하고 t 인수가 부동 소수점 숫자이면 nil. |
17 | realp 하나의 인수를 취하고 t 인수가 실수이면 그렇지 않으면 반환합니다. nil. |
18 | complexp 하나의 인수를 취하고 t 인수가 복소수이면 반환합니다. nil. |
19 | characterp 하나의 인수를 취하고 t 인수가 문자이면 그렇지 않으면 반환합니다. nil. |
20 | stringp 하나의 인수를 취하고 t 인수가 문자열 객체이면 반환합니다. nil. |
21 | arrayp 하나의 인수를 취하고 t 인수가 배열 객체이면 반환합니다. nil. |
22 | packagep 하나의 인수를 취하고 t 인수가 패키지이면 그렇지 않으면 반환합니다. nil. |
예 1
main.lisp라는 새 소스 코드 파일을 만들고 그 안에 다음 코드를 입력합니다.
(write (atom 'abcd))
(terpri)
(write (equal 'a 'b))
(terpri)
(write (evenp 10))
(terpri)
(write (evenp 7 ))
(terpri)
(write (oddp 7 ))
(terpri)
(write (zerop 0.0000000001))
(terpri)
(write (eq 3 3.0 ))
(terpri)
(write (equal 3 3.0 ))
(terpri)
(write (null nil ))
코드를 실행하면 다음 결과가 반환됩니다.
T
NIL
T
NIL
T
NIL
NIL
NIL
T
예 2
main.lisp라는 새 소스 코드 파일을 만들고 그 안에 다음 코드를 입력합니다.
(defun factorial (num)
(cond ((zerop num) 1)
(t ( * num (factorial (- num 1))))
)
)
(setq n 6)
(format t "~% Factorial ~d is: ~d" n (factorial n))
코드를 실행하면 다음 결과가 반환됩니다.
Factorial 6 is: 720