728x90
1. 변수(Variables)
1) 지역 변수 : 함수 내에서만 범위가 한정된다.
2) 전역 변수 : 전체 범위에서 사용가능한 변수
- setf : 변수를 정의
값 변경이 가능하다. 전역변수로 선언하려면 (seft *변수이름* 값)을 하면된다.
ex) (setf vowels '(a e i o u))
- defconstant : 상수선언 (값변경 불가)
- defvar : 전역변수 선언 변수이름을 *로 감싸야된다.
다시 함수선언하려고 하면 경고 뜸-> 값이 변경이 안됨
- defparameter : 전역변수 선언
다시 함수로 변수 선언하면 값이 변경이 된다. 경고는 뜸
2. Side Effects
- main efftet는 값 자체를 되돌려주는 것.
- side efftect는 함수마다 다름.
ex) setf는 값을 변경시키는 side effect가 있고 defun은 함수를 만드는 side effect가 있다.
- 굳이 메인이펙트랑 사이드 이펙트를 구분해서 이해할 필요는 없음
3. let
- 함수내 지역변수 지정
함수내에서는 setf를 쓰지말고 let을 쓰는 게 낫다.
- 사용방법
(let ((변수이름1 값1)) //여러개 선언가능
- let* : let*안에서 선언된 지역변수를 사용하여 새로운 지역변수를 생성이 가능하다
ex)
(let* ((diff (- new old))
(proportion (/ diff old))
(percentage (* proportion 100.0)))
728x90
'Major > Lisp' 카테고리의 다른 글
[Lisp] Ch 6 - 리스트 자료구조 (List Data Structures) (0) | 2021.04.21 |
---|---|
[Lisp] Ch 11 - 반복문과 블록구조 (Iteration and Block Structure) (0) | 2021.04.15 |
[Lisp] Ch 3 - Eval Notation (0) | 2021.04.13 |
[Lisp] Ch 4 - 조건문 (Conditionals) (0) | 2021.04.10 |
[Lisp] Ch 2 - 리스트(Lists) (0) | 2021.04.10 |