defparameter
-
DEFPARAMETER와 DEFVAR의 차이Programmer/Programming 2013. 1. 17. 16:23
Lisp에서 전역 변수(global variable)를 정의하는 방법은 DEFPARAMETER와 DEFVAR를 사용하는 두가지가 있다. 이 둘의 차이는 재정의(redefine) 이후 변수의 값이 정의대로 갱신되는지 여부이다. DEFPARAMETER는 재정의 할 때마다 새로운 값으로 갱신되는 반면, DEFVAR는 변수의 값이 계속 유지가 된다. 다시 말하면, DEFVAR는 바인딩 되지 않았을 때(unbound), 초기값으로 설정이 된다. > (defparameter *foo* 5) *FOO* > *foo* 5 > (defparameter *foo* 6) *FOO* > *foo* 6 > (defvar *bar* 5) *BAR* > *bar* 5 > (defvar *bar* 6) *BAR* > *bar* 5 ..