커먼 리스프
커먼 리스프 또는 커먼 리습(Common Lisp)은 리스프 언어의 일종이다. 종종 CL로 줄여 부른다. 이미 있는 다양한 리스프 변종들을 표준화하기 위한 목적으로 개발되었으며, ANSI X3.226-1994 이 표준번호이다. 리스프 방언들 중에 스킴과 함께 가장 널리 쓰이고 있다. 커먼 리스프는 함수형 프로그래밍 뿐 아니라 절차형 프로그래밍, 객체 지향 프로그래밍 등 다양한 패러다임을 지원한다.
문법
편집커먼 리스프는 리스프이다. 따라서 S-표현식으로 코드와 데이터 구조를 모두 나타낸다. 함수와 매크로 호출은 이름을 제일 처음에 쓴 리스트 형식으로 씌여진다. 다음의 예를 보라.
(+ 2 2) ; 2와 2를 더한다. 4를 반환한다.
(setf p 3.1415) ; 변수 "p"에 값 3.1415를 넣는다.
; "pi" is a built-in constant; can't setf it
; 수를 받아 제곱을 반환하는 함수를 정의한다.:
(defun square (x) (* x x))
; 정의된 함수를 수행한다.:
(square 3) ; 반환값은 "9"
; 컨스트럭션 - 'let' 블록 안에서만 존재하는 변수. 범위 바깥에서 해당 변수의 값이 얼마든
; 간에 그 변수에 영향을 주지 않고 변수를 사용할 수 있다. 같은 이름의 변수가 바깥에
; 있다면 블록에 들어오기 전에 그 변수의 값은 따로 저장되었다가 블록을 나오면서 원래 값
; 을 복원한다.
(let ((a 6) (b 4)) (+ a b)) ; 10 을 반환한다.
외부 링크
편집- CLiki 커먼 리스프 위키: 커먼 리스프로 씌여진 자유 소프트웨어에 대한 정보
- Common-Lisp.net: 자유 커먼리스프 프로젝트 호스팅 사이트
- Common Lisp HyperSpec
- Episodic Learner Model: 인터렉티브 강좌
- 폴 그래엄의 리스프 페이지
- Peter Norvig의 웹 사이트
- CLOCC - the Common Lisp Open Code Collection
- 과학계산에 커먼 리스프 사용하기[깨진 링크(과거 내용 찾기)]
e-book
편집- Common Lisp the Language, 2nd Edition
- Practical Common Lisp
- Common Lisp: A Gentle Introduction to Symbolic Computation
- Common Lisp Cookbook
- Successful Lisp: How to Understand and Use Common Lisp
구현
편집- 알레그로 커먼 리스프 - 상용
- Armed Bear Lisp - 공개
- CormanLisp - 상용
- CMUCL - 공개
- ECL - Embeddable Common-Lisp - 공개
- gcl - GNU Common Lisp - 공개
- GNU CLisp - 공개
- LispWorks - 상용
- Macintosh Common Lisp (MCL) - 상용
- Movitz - 공개
- Jatha - 공개
- SBCL - 공개
- Scieneer Common Lisp - 상용