728x90
1. 조건문
- Lisp에서 조건문은 IF나 COND 를 이용하여 나타낼 수 있다.
- 조건문의 결과는 T와 FALSE(NIL) 두가지로 나온다
1) If
- 사용방법
(IF ( 조건문 ) '참일때 결과값 '거짓일때 결과값 )
ex) (if (oddp 1) 'odd 'even) = odd
2) COND
- 사용방법
(COND ((조건문 1) '조건문1이 참일때 결과값)
((조건문 2) '조건문2가 참일때 결과값)
...
(t '조건문들이 참이 아닐 때 결과값))
ex) 두 수를 입력받아 비교하는 함수
(defun compare (x y)
(cond ((equal x y) 'number_same)
((< x y) 'first_is_smaller)
(t 'first_is_bigger)))
3) AND와 OR
- C 언어에서 AND = && , OR = || 과 같다
- 모두 다 참이어야 할 때 and, 하나라도 참이면 될 때 or
ex) 양수이고 100보다 작은 홀수 확인하는 함수
(defn small-positive-oddp (x)
(and (< x 100)
(> x 0)
(oddp x)))
ex) 첫번째가 두번째보다 크거나 둘 중하나가 0인지 확인하는 함수
(defun gtest (x y)
(or (> x y)
(zerop x)
(zerop y)))
4) WHEN과 UNLESS
ⓐ WHEN : 조건이 참일 때
ⓑ UNLESS : 조건이 거짓일 때
ex) x가 짝수이면 1을 증가하고, y가 홀수이면 1을 감소시키는 함수
(defun func (x y)
(unless (oddp x) (incf x))
(when (oddp y) (decf y))
(* x y))
+ Apropos 함수 : 문자열의 이름을 바꿔줌
728x90
'Major > Lisp' 카테고리의 다른 글
[Lisp] Ch 11 - 반복문과 블록구조 (Iteration and Block Structure) (0) | 2021.04.15 |
---|---|
[Lisp] Ch 5 - Variables and Side Effects (0) | 2021.04.13 |
[Lisp] Ch 3 - Eval Notation (0) | 2021.04.13 |
[Lisp] Ch 2 - 리스트(Lists) (0) | 2021.04.10 |
[LISP] Ch 1 - 함수와 데이터(Functions and Data) (0) | 2021.03.19 |