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
- 지리산 펜션
- 전용 계곡
- 아나콘다 텐서플로
- LISP
- 파이썬 yield
- CUDA9.0
- 산청 황토 펜션
- 황토펜션
- 파이썬 GUI
- HTML
- 파이썬
- 하늘숲 황토 펜션
- 텐서플로 설치
- anaconda tensorflow
- LISP 함수
- tensorflow 설치
- ubuntu
- 출근 전날
- 지리산 둘레길
- cuda
- 지리산 황토 펜션
- Python
- 계곡 펜션
- machine learning
- 하늘숲황토펜션
- 오봉 계곡
- 인공지능
- python yield
- tensorflow
- 하늘숲펜션
Archives
- Today
- Total
YongWook's Notes
<인공지능> LISP에 대해 알아보자 2 - LISP의 함수 上 본문
LISP에서의 계산
LISP의 계산은 모두 함수적용에 의하여 이루어진다. operator가 앞에 오고 그 뒤에 operand 혹은 Argument가 오는 Prefix Notation으로 사용해야한다. 다음은 3+5의 계산과 (3+(5*6))의 계산이다.
> (+ 3 5)
> (+ 3 (* 5 6)
LISP의 함수들 - 上
- SETQ : 심볼에 값을 저장(Binding)함.
여기서 Q는 Quote이다. X가 계산되지 않고 Symbol로 처리될 수 있도록 한다. Quote는 `로 쓸 수 있다> (SETQ X 3); X에 3을 저장한다.
- +-*/ : 사칙연산 기호
- LIST : 원소들을 모아서 새로운 리스트 구조를 생성해 내는 함수이다. `를 안붙이면 그 값을 계산해서 리스트에 넣는다.
> (SETQ X 5); X에 5를 저장함. > (LIST 'X X 'Y); (X 5 Y)라는 리스트를 만듦.
- CAR : 리스트의 첫번째 원소를 가져온다.
> (CAR '(X Y Z)); 리스트 (X Y Z)의 첫 번째 원소인 X가 결과로 나옴. > (CAR ((X) Y Z); 리스트 ((X) Y Z)의 첫 번째 원소인 (X)가 결과로 나옴.
- CDR : 리스트의 첫번째 원소를 제외한 나머지를 결과로 생성한다.
> (CDR '(X Y Z)); 리스트 (Y Z)가 결과로 나옴. ; CAR과 CDR을 혼합하여 사용할 수 있다. > (CAR (CDR (CDR X))); 리스트 X에서 세번째 원소를 구하고 싶을때 쓸 수 있는데 이는 > (CADDR X); 이렇게 사용할 수 있다.
- NTH : N번째 원소를 반환한다. 두번째 argument가 리스트가 아니면 에러
> (NTH 4 '(0 1 2 3 4 5 6)); 4를 반환한다. (숫자를 0부터 셈에 주의) > (NTH 3 '(A B); NIL 반환.
- CONS : 기존의 리스트에 새로운 원소를 추가하여 리스트를 키워나갈 수 있는 함수이다. 새로 추가되는 원소는 리스트의 첫번째 원소가 된다.
> (CONS 'A '(B C D)); 결과로 (A B C D)를 생성함.
- REVERSE : 주어진 리스트 안의 원소의 순서를 거꾸로 바꾼다.
> (REVERSE '(A B C D)); 결과로 (D C B A)가 생성됨.
- APPEND : 주어진 여러개의 리스트들을 하나의 리스트로 만든다.
> (APPEND '(A C) '(B D) '(E F)); 결과로 (A C B D E F)가 생성됨.
- LENGTH : 주어진 리스트 내의 원소 개수를 값으로 반환한다.
> (LENGTH '(A B C)); 주어진 리스트의 원소의 개수는 A와 B와 C. 총 세 개이다. > (LENGTH '((A B C)); 주어진 리스트의 원소의 개수는 (A B C) 하나이다.
* 참고로 첨부한 예제의 세미콜론 ';'은 JAVA나 C++에서 주석처리를 위해 쓰는 //와 같은 쓰임새를 가진다. 그 줄의 문장이 끝났음을 알리는 도구이며 주석을 쓰지않는경우 생략해도 좋다.
'-software > AI' 카테고리의 다른 글
<CAFFE> 설치 in Ubuntu (0) | 2016.08.22 |
---|---|
<인공지능> Monk's Problem (0) | 2016.05.25 |
<인공지능> LISP에 대해 알아보자 - 4 새로운 함수 만들기 (1) | 2016.03.06 |
<인공지능> LISP에 대해 알아보자 3 - LISP의 함수 下 (0) | 2016.03.04 |
<인공지능> LISP에 대해 알아보자 1 - 소개 (0) | 2016.03.02 |
Comments