gpt4 book ai didi

lisp - 合并plists的简单方法?

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

在 Common Lisp 中有合并两个 plist 的简单方法吗?或者从另一个角度来看:有没有办法从 plist 中删除重复项?我知道我可以只附加 plists(GETF 将采用它找到的第一个),但我不想在我的应用程序运行时继续累积未使用的 key 。

我正在考虑类似 (通过 #'cddr ... 在我的 plist 上循环 p),但通常有比我最初想到的更简单的方法!

最佳答案

你可以从这个原始版本开始:

(defun merge-plist (p1 p2)
(loop with notfound = '#:notfound
for (indicator value) on p1 by #'cddr
when (eq (getf p2 indicator notfound) notfound)
do (progn
(push value p2)
(push indicator p2)))
p2)

CL-USER 104 > (merge-plist '(a 1 b 2 c 3) '(a 2 b 4))
(C 3 A 2 B 4)

关于lisp - 合并plists的简单方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3398602/

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