我的Plist如修改plist里面的列表?
'((:atom Toddler :visited nil :on-clauses (0 1))
(:atom Child :visited nil :on-clauses 1))
我应如何改变在给定的:atom
:onclauses
财产清单?我想更新此资源,例如使第二plist (:atom Child :visited nil :on-clauses (1 2))
(只增加新的值,从不删除旧的)。
我能做的最好是使用
(remove-if-not #'(lambda(record)
(equal (getf record :atom) atom))
*ATOMS*)
获取初始值,更新它,然后用其模拟得到没有该值的列表从头开始创建一个新的列表,并追加两者一起,但是这可能是非常inneficient(我知道过早optimatization是不好的,但我学习LISP,想知道如何做正确的事!)
请注意,您不应修改文字引用数据。效果不明确。请使用非破坏性操作或复制之前的树。 –
你有一些我可以阅读关于@RainerJoswig的参考吗?我相当新的LISP .. –