#求助# mapcar 运行与元素直接运行不同吗?

locale-info 这个函数, 后续接一个symbol作为变量

(locale-info 'codeset) ;cp936
(locale-info 'days) ;周一...
(locale-info 'months) ; 一月...

但是当我用mapcar 或mapc得到就只有nil

(mapcar 'locale-info '('codeset 'days 'months)) ; nil
(mapc (lambda (x) (prin1 (locale-info x)))  '('codeset 'days 'months)) ; nilnilnil

环境是Windows10. 这是什么原理呢?

(mapcar 'locale-info '(codeset days months))
1赞

还真是这样, 但为什么这里就不用加'就会被默认转化为symbol了…我觉得不合逻辑啊?

'('codeset 'days 'months)
;; => ((quote codeset) (quote days) (quote months))

(locale-info '(quote days))
;; => nil

locale-info 需要一个符号,你传了一个列表。

1赞

谢谢, 您讲得非常透彻!! :+1: