본문 바로가기

LISP

symbol-value / symbol-function / lambda 식


;;; 함수명과 변수명이 같은 이름일 때 구분하여 지칭하고자 할 때


(symbol-value 'double)
;; symbol to the value

(symbol-function 'double)
;; symbol to the function


;;; 함수 정의를 defun 아닌 setf로 정의할 수도 있다.

(defun double (x) (* x 2))

(setf (symbol-function 'double) #'(lambda (x) (* x 2)))


;;; lambda 식 전체는 익명의 긴 함수의 이름이므로 리스트에서 맨 처음에 온다.

((lambda (x) (* x 2)) 3)  ;;; ==> 6