gpt4 book ai didi

lisp - 在 elisp 中替换关联列表中的项目

转载 作者:太空宇宙 更新时间:2023-11-03 18:32:25 25 4
gpt4 key购买 nike

我在 emacs lisp 中有一个列表,例如:

(setq a1
'((:k1 . 1)
(:k2 . 2)
(:k3 . 3)))

我想将 :k1 的值更改为 10,例如 (:k1 . 10)。我该怎么做?

我尝试了 (setf (assoc :k1 a1) '(:k1 . 10)) - 它没有用。

最佳答案

对于列表,您通常会在旧值前面添加一个新的 cons 以“遮蔽”旧值,如下所示:

(add-to-list 'a1 '(:k1 10))

执行此操作后,(assoc :k1 a1) 将返回 10。

如果您想“撤消”您的更改以便 assoc 再次返回您的旧值,请使用此代码:

(setq a1 (delq (assoc :k1 a1) a1))

这将从 a1 中删除 :k1FIRST 匹配项。

关于lisp - 在 elisp 中替换关联列表中的项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10063195/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com