티스토리 뷰

카테고리 없음

관계 연산자

Jaybi 2021. 4. 7. 10:54

관계 연산자는 요소들의 값들을 비교하여 결과가 참이면 T를 리턴하고, 거짓이면 nil을 리턴하는 함수이다.

관계 연산자 단독으로는 비교 이외의 아무런 기능을 가지지 못하며, 조건 함수와 함께 사용해야 한다.

 

1. 같다(=)

(1) 기능

"=" 표시는 요소들을 검사하여 같으면 T를 리턴하고 같지 않으면 nil을 리턴한다.

(2) 사용법

(= A B ·····)

(3) 예 제

 (= 7 7)

 : 참이므로 T를 리턴한다.

 (= 3 3.3 3)

 : 거짓이므로 nil을 리턴한다.

 (setq eqnum (= 7 7))

   !eqnum  :  T

 (setq eqnum (= 3 3.3))

   !eqnum  :  nil

 (= "DMZ" "DMZ")

 : 참이다. T를 리턴한다.

 (= "DMZ" "CG")

 : 거짓이므로 nil을 리턴한다.

 

 

2. 같지 않다(/=)

(1) 기능

요소들을 검사하여 같지 않으면 T를 같으면 nil을 리턴한다.

(2) 사용법

(/= A B ·····)

(3) 예제

 (/= 25 3)

 : 서로 같지 않으므로 T를 리턴한다.

 (/= 25 25)

 : 거짓이므로 nil을 리턴한다.

 (setq nenum (/= 25 3))

   !nenum  :  T

 (setq nenum (/= 25 25))

   !nenum  :  nil

 (/= "PNP" "PNP)

 : nil

 (/= "PNP" "CG")

 : T

 

 

3. 크다(>)

(1) 기능

이후의 요소들이 모두 작으면 T를 그렇지 않으면 nil을 리턴한다.

※ B와 C가 A보다는 작고 C가 B보다 크면은 거짓이다. 따라서 nil을 리턴한다.

(2) 사용법

(> A B C D···)

(3) 예제

 (> 30 25)

 : T를 리턴한다.

 (> 25 40)

 : nil을 리턴한다.

 (setq tanum (> 30 25))

   !tanum  :  T

 (setq tanum (> 25 40))

   !tanum  :  nil

 (> 7 6 4 5 2)

 : nil을 리턴한다.

 (> 7 5 4 3 1)

 : T를 리턴한다.

 

 

4. 크거나 같다(>=)

(1) 기능

표시는 A 이후의 요소들이 A보다 작거나 같으면 T를 리턴, 그렇지 않으면 nil을 리턴한다.

※ B와 C가 A보다 작거나 같고, C가 B보다 크면 nil을 리턴한다.

(2) 사용법

(>= A B C D ···)

(3) 예제

 (>= 25 10)

 : T를 리턴한다.

 (>= 25 25 10)

 : T를 리턴한다.

 (>= 25 25 29)

 : nil을 리턴한다.

 (setq tenum (>= 25 10))

   !tenum  :  T

 (setq tenum (>= 25 25 29))

   !tenum  :  nil

 (>= "m" "m")

 : T를 리턴한다.

 (>= 25 25 10 17)

 : nil을 리턴한다.

 

 

5. 작다(<)

(1) 기능

이후의 요소들의 모두 크면 T를 그렇지 않으면 nil을 리턴한다.

※ B와 C가 A보다 크더라도 C가 B보다 작으면 nil이다.

(2) 사용법

(< A B C D···)

(3) 예제

 (< 1 2 3 4 5)

 : 이후의 숫자들이 모두 크므로 T를 리턴한다.

 (< 1 4 3 5)

 : 거짓이므로 nil을 리턴한다.

 (< "A" "Z")

 : T를 리턴한다.

 (setq ltnum (< 1 2 3 4 5))

   !ltnum  :  T

 (setq ltnum (< 1 4 3 5))

   !ltnum  :  nil

 (setq ltnum (< "A" "Z"))

   !ltnum  :  T

 

 

6. 작거나 같다(<=)

(1) 기능

"<=" 표시는 A이후의 요소들이 A보다 크거나 같으면 T를 그렇지 않으면 nil을 리턴한다.

※ B와 C가 A보다 크거나 같더라도 C가 B보다 작으면 nil이다.

(2) 사용법

(<= A B C D···)

(3) 예제

 (<= 25 25)

 : 참이므로 T를 리턴한다.

 (<= 25 30)

 : T를 리턴한다.

 (<= 5 2 5)

 : 거짓이므로 nil을 리턴한다.

 (setq ltenum (<= 26 26))

   !ltenum  :  T

 (setq ltenum (<= 26 30))

   !ltenum  :  T

 (setq ltenum (<= 5 2 5))

   !ltenum  :  nil

 

 

7. Eq

(1) 기능

식A와 B가 일치하면 T를, 그렇지 않으면 nil을 리턴한다.

(2) 사용법

(Eq A B)

(3) 예제

 (Eq 25 25)

 : T를 리턴한다.

 (Eq 25 25.0)

 : 참이므로 T를 리턴한다.

 (Eq "PNP" "CG")

 : nil을 리턴한다.

 (setq eqnum (eq 25 25 ))

   !eqnum  :  T

 (setq eqnum (eq 25 25.0)

   !eqnum  :  T

 (setq eqnum (eq "DMZ" "dmz")

   !eqnum  :  nil


※ 2개 이상을 비교했을 때는 다음과 같은 Error가 발생한다.
    error: too many arguments 

 

 

8. Equal

(1) 기능

Eq와 유사한 기능을 가지지만 한가지 차이점은 식A와 식B가 달라도 동일하다고 인정할 수 있는

최대 양을 정의하는 실수를 지정할 수 있다.

A와 B의 차이가 지정한 범위내에 존재하면 T를 그렇지 않으면 nil을 리턴한다.

(2) 사용법

(Equal A B Fuzz)

(3) 예제

 (equal 52 52)

 : T를 리턴한다.

 (equal 25 25.1 0.5)

 : 참이므로 T를 리턴한다.

 (equal 25 25.1 0.05)

 : nil을 리턴한다.

 (setq eqnum (equal 52 52))

   !eqnum  :  T

 (setq eqnum (equal 25 25.1 0.5))

   !eqnum  :  T

 (setq eqnum (equal "PNP" "CG"))

   !eqnum  :  nil

 

출처: www.lispcenter.net/Lisp/Lisp_13.htm

댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/05   »
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
글 보관함