[Common Lisp] loop collect でのクロージャ
loop を使ったものの結果が (B B) になるのはやはり仕様でしょうか?
(mapcar #'funcall
(loop for i in '(a b)
collect #'(lambda () i)))
;; => (B B)
(mapcar #'funcall
(let (x)
(dolist (i '(a b))
(push #'(lambda () i) x))
x))
;; => (B A)
(mapcar #'funcall
(mapcar #'(lambda (x)
#'(lambda () x))
'(a b)))
;; => (A B)
0 件のコメント:
コメントを投稿