[Lisp] Ch 4 - 조건문 (Conditionals)

2021. 4. 10. 14:26·Major/Lisp
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
'Major/Lisp' 카테고리의 다른 글
  • [Lisp] Ch 5 - Variables and Side Effects
  • [Lisp] Ch 3 - Eval Notation
  • [Lisp] Ch 2 - 리스트(Lists)
  • [LISP] Ch 1 - 함수와 데이터(Functions and Data)
BeNI
BeNI
코딩하는 블로그
  • BeNI
    코딩못하는컴공
    BeNI
  • 전체
    오늘
    어제
    • Menu (253)
      • My profile (1)
      • 회고 | 후기 (8)
      • Frontend (65)
        • Article (11)
        • Study (35)
        • 프로그래머스 FE 데브코스 (19)
      • Backend (0)
      • Algorithm (58)
        • Solution (46)
        • Study (12)
      • Major (111)
        • C&C++ (23)
        • Java (20)
        • Data Structure (14)
        • Computer Network (12)
        • Database (15)
        • Linux (6)
        • Architecture (3)
        • Lisp (15)
        • OS (1)
        • Security (2)
      • etc (2)
  • 링크

    • 깃허브
    • 방명록
  • 인기 글

  • 최근 댓글

  • 최근 글

  • 태그

    자료구조
    C++
    백준
    리팩토링
    react
    파일처리
    데브코스
    lisp
    Algorithm
    프로그래머스
  • hELLO· Designed By정상우.v4.10.2
BeNI
[Lisp] Ch 4 - 조건문 (Conditionals)
상단으로

티스토리툴바