对于普通数据类型,下面的结果是一样的
(list 1 2 3 4) ;; => (1 2 3 4)
'(1 2 3 4) ;; => (1 2 3 4)
对于lambda,下面的结果就不一样了,哪位帮解释一下?
(let ((count 0))
(list
#'(lambda () (incf count))
#'(lambda () (decf count))
#'(lambda () count)))
;; =>(#<CLOSURE (LAMBDA ()) {10033FCA7B}>
;; #<CLOSURE (LAMBDA ()) {10033FCA9B}>
;; #<CLOSURE (LAMBDA ()) {10033FCABB}>)
;; 列表的成员是闭包
(let ((count 0))
'(#'(lambda () (incf count))
#'(lambda () (decf count))
#'(lambda () count)))
;;=>(#'(LAMBDA () (INCF COUNT))
;; #'(LAMBDA () (DECF COUNT))
;; #'(LAMBDA () COUNT))
;; 列表的成员是lambda