Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- CUDA9.0
- 하늘숲 황토 펜션
- 지리산 펜션
- 하늘숲펜션
- 파이썬
- HTML
- tensorflow 설치
- LISP 함수
- 전용 계곡
- tensorflow
- 계곡 펜션
- 하늘숲황토펜션
- 오봉 계곡
- 지리산 둘레길
- anaconda tensorflow
- cuda
- 지리산 황토 펜션
- 텐서플로 설치
- LISP
- 아나콘다 텐서플로
- 출근 전날
- Python
- 산청 황토 펜션
- 파이썬 yield
- 황토펜션
- 파이썬 GUI
- 인공지능
- ubuntu
- machine learning
- python yield
Archives
- Today
- Total
YongWook's Notes
<인공지능> LISP에 대해 알아보자 3 - LISP의 함수 下 본문
이틀 전 작성했던 게시글에서 다뤘던 인공지능에서 쓰이는 아주 오래된 언어인 LISP. 그 함수에 대해서 계속해서 정리해보자.
LISP의 함수들 - 下
- MEMBER : 주어진 리스트 내에 어떤 원소가 있는지 확인하는 함수이다. 만약 찾고자 하는 원소가 주어진 리스트 내에 존재하면 그 원소부터 리스트 끝까지가 결과 값으로 반환된다. 리스트 내에 찾고자 하는 원소가 없을 경우 NIL이 반환된다.
> (SETQ CLUB '(TOM HARRY JOHN DANIEL)) > (MEMBER 'HARRY CLUB) (HARRY JOHN DANIEL) ; 리스트 CLUB내의 원소 HARRY부터 그 리스트의 끝까지 반환됨
- ASSOC : 리스트를 원소로 같는 리스트에서 원소 리스트의 첫번째 원소를 데이터베이스에서의 KEY처럼 사용하여 원하는 리스트를 찾을 수 있는 함수이다. 작은 데이터베이스 구축에 용이하게 쓸 수 있다.
> (ASSOC 'TWO '((ONE 1)(TWO 2)(THREE 3))) (TWO 2) ; 첫번째 원소가 TWO인 리스트를 찾아내서 리턴함.
- REMOVE : 첫 번째 인자를 두 번째 인자로 받는 리스트에서 찾아 모두 제거하는 함수이다.
제거한 결과를 보여주기만 할 뿐, 그 결과값으로 리스트를 새로 저장하지는 않는다.> (SETQ MYLIST '(A B C D E F)) > (REMOVE 'D MYLIST) (A B C E F) ; D가 삭제되었다. > (SETQ MYLIST '(A D B C D E D F)) > (REMOVE D MYLIST) (A B C E F) ; D가 중복되어 여러개가 있어도 모두 삭제한다.
- SUBST : 세 번째 인자에서 두 번째 인자를 찾아 첫 번째 인자로 대치한다.
> (SUBST 'GOOD 'BAD '(I AM BAD)) (I AM GOOD) ; BAD가 GOOD으로 대치되었다.
- GENSYM : 새로운 변수로 심볼(atomic symbol)을 하나 만든다. 인자 없이 사용되며 새로이 생성된 변수는 Gn의 이름을 갖는다. 이 때 n은 1부터 시작한다.
> (GENSYM) G1 > (GENSYM) G2
- LISP의 Predicate 함수들 : T(true)나 NIL(false)를 반환하는 함수이다. LISP에서 Predicate가 NIL을 반환하면 거짓(false)로 인정하고 NIL이 아닌 다른 어떤 값을 반환하면 참(true)으로 인정한다. 함수 이름 뒤에 Predicate의 P를 붙인 것들이 많다.
> (ATOM X) ; X가 ATOM(심볼)일 때만 참(true)를 반환함. > (NULL X) ; X가 NIL일 때만 참(true)을 반환함. > (NUMBERP X) ; X가 숫자일 때만 참(true)을 반환함. > (ZEROP X) ; X가 0일 때만 참(true)을 반환함. X가 숫자가 아니면 ERROR 발생. > (MINUSP X) ; X가 음수일 때만 참(true)을 반환함. X가 숫자가 아니면 ERROR 발생. > (EQUAL X Y) ; X와 Y가 같으면 참(true)을 반환함. > (< X Y) ; X < Y 이면 참(true)을 반환함. > (>= X Y) ; X >= Y 이면 참(true)을 반환함. > (STRINGP X) ; X가 STRING일 때만 참(true)을 반환함. > (STRINGP "A") T > (SETQ A "HI THERE") > (STRINGP A) T > (STRINGP #\A) ; 문자 NIL > (STRINGP '(A B C)) ; 리스트 NIL > (STRINGP 1.2) ; 숫자 NIL > (STRINGP 'A) ; 심볼 NIL > (STRINGP #(0 1 2)) ; 배열 NIL > (STRINGP NIL) NIL
LISP의 조건문
- IF
> (IF (> X 3) (PRINT X)) ; X값이 3보다 크면 X값을 프린트. > (IF (> X 3) (PRINT X) (+ X 5) ; X값이 3보다 크면 X값이 프린트되고 ; 그렇지 않으면 X에 5를 더하게 됨.
- COND
> (COND (<제 1 조건문> <수행문1>) (<제 2 조건문> <수행문2>) (<제 3 조건문> <수행문3>)
'-software > AI' 카테고리의 다른 글
<CAFFE> 설치 in Ubuntu (0) | 2016.08.22 |
---|---|
<인공지능> Monk's Problem (0) | 2016.05.25 |
<인공지능> LISP에 대해 알아보자 - 4 새로운 함수 만들기 (1) | 2016.03.06 |
<인공지능> LISP에 대해 알아보자 2 - LISP의 함수 上 (0) | 2016.03.02 |
<인공지능> LISP에 대해 알아보자 1 - 소개 (0) | 2016.03.02 |
Comments