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