影响列表的一个元素

Pet*_*avy 4 emacs elisp

如果我有一个数字列表

(setq numbers '(10 11 12))
Run Code Online (Sandbox Code Playgroud)

我想增加第三个数字,我可以这样做:

(setf (nth 2 numbers) (1+ (nth 2 numbers)))
Run Code Online (Sandbox Code Playgroud)

但我不想重复"(第2个数字)".有什么方法可以写这个,但只有一个引用"(第2个数字)"?

phi*_*ils 5

确切地说有一个宏:

(incf (nth 2 numbers))
Run Code Online (Sandbox Code Playgroud)

您可以提供要添加的值作为附加参数.