프로그래밍 언어 – Lisp

프로그래밍 언어 강의 시간에 들었던 Lisp 강의를 들으면서 요약했던 부분이다.
지금 보니 뭘 요약, 정리해놓은 건지도 잘 모르겠다..;;

quote(abc) == ‘abc 수정 X

* Interpretation & dynamic typed 언어

* 모든 표현에 대해 평가(evaluate)하고 결과값(retrun value)를 생성함.

* Lexical scoping(scope를 안에만 보는 것:Look inside, never outside, local 우선) indefinite scoping(scoping에 제한 없음)을 사용함.

* Atom(자르면 안됨)과 List 중심의 표현되는 s-expression의 언어

* Atom : refer to just about any s-expression that connot be taken apart

* q는 얼음, 아닌건 땡(…)

* (+ 2 (setq x (* 3 4))) 는 스택 사용, *는 binary operation이므로 parameter가 두 개, x는 중간에 binding 됨.

* ‘( )’ 는 리스트 ‘(‘를 열면 리스트 만듦.

* setq은 pointer와 비슷한 개념

* (set x ‘z)는 (setq y z)와 같다.

* s-expressions은 괄호가 열리면 꼭 닫혀야 한다.

* (a (b c) d) 같은 건 binary tree등을 나타내는데 쓸 수 있음.

* (car (cdr ‘(a b c))) == (cadr ‘(a b c))

* nil은 type이 없다


* function define
(defun fname (v1, …, vn)
       (body1) … (bodym))

* predicate: T/nil 을 리턴함

(atom a) -> T: A가 atom 이냐

(atom ‘(a b))

* mapping functions : mutilple operation

* property list : DB, global(또, get,  set)

댓글 남기기

이메일은 공개되지 않습니다. 필수 입력창은 * 로 표시되어 있습니다

This site uses Akismet to reduce spam. Learn how your comment data is processed.