在Emacs Lisp中,循环遍历一个alist并对每个pair做一些处理,最好的方法是什么?我想一个宏不难写,只是想知道这是否已经内置了。除下面所示的方法外,是否有更优雅的方式?
(setq my-list '((a . 1)
(b . 2)
(c . 3)))
(loop for key in (mapcar 'car my-list)
for value in (mapcar 'cdr my-list)
collect (cons value key))
;; Returns this
((1 . a)
(2 . b)
(3 . c))
cl
已被弃用,现代的替代方案是使用具有完全相同功能的cl-loop
宏,该宏位于cl-lib
库中。该库已内置于较新版本的emacs中,并且可以从GNU ELPA获取向后兼容的软件包。 - sanityinc