【发布时间】:2015-09-13 17:03:40
【问题描述】:
我有一个property list:
(setf *star* '(:points 5))
我想修改这个 plist。有时更好的选择是进行突变,有时更好的选择是使用不可变更新。
如何使用mutation修改plist?
(mutate *star* :points 6)
*star* ; '(:points 6)
以及如何使用不可变更新修改 plist?
(update *star* :points 6) ; '(:points 6)
*star* ; '(:points 5)
【问题讨论】:
-
在这种特殊情况下,通过引用列表,您可以创建一个文字对象。它的修改具有不确定的后果。 lispworks.com/documentation/HyperSpec/Body/03_ga.htm