You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Emacs Lisp中遍历嵌套列表?代码报错求助

解决Emacs Lisp遍历嵌套列表的报错问题

报错信息翻译

"symbol's value is void k." → 符号k的值未定义

问题原因

你混用了循环语法,Emacs Lisp中没有原生的loop命令,外层的loop未被定义,导致变量k没有被正确绑定,内层cl-loop无法找到k的有效值,因此报错。

正确实现方式

以下两种方法都可以正确遍历你的嵌套列表:

方法1:统一使用cl-loop

(setq my-list '(((a . 1) (b . 2))  ((c . 3))))
(cl-loop for k in my-list do
  (cl-loop for (i . j) in k do
         (message "%c %d" i j)))

方法2:使用Emacs原生dolist嵌套

(setq my-list '(((a . 1) (b . 2))  ((c . 3))))
(dolist (k my-list)
  (dolist (pair k)
    (message "%c %d" (car pair) (cdr pair))))

两种方式都会先遍历外层的每个子列表,再遍历子列表中的每个cons对,最终打印出每个键值对的内容。

内容的提问来源于stack exchange,提问作者Zeta

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.21 19:37:03