口齿不清的麻烦
|
我正在用Common Lisp编写程序,其中我需要一个具有以下基本轮廓的函数:
(defun example (initial-state modify mod-list)
(loop for modification in mod-list
collecting (funcall modify initial-state modification)))
问题在于,每次传递给modify
时,我都需要initial-state
相同,但是modify
可能具有破坏性。我只想制作一个副本,但是我不想对“ 1”是什么类型的数据做任何假设。
我怎样才能做到这一点?甚至有可能吗?
谢谢!
没有找到相关结果
已邀请:
1 个回复
响摔衅幸
。 避免预配置ѭ1包含哪种数据的一种可能性是,为调用者提供明确的复制操作留给调用者一个问题,或者使其成为通用操作并依靠其他人来提供一种方法。
第一个版本比较笼统,因为它允许状态成为任何对象,而在第二个版本中,复制操作取决于状态对象类型(这意味着您不能让两个调用者都将列表用作具有不同复制语义的状态)。 但是,“ 8”是通用操作,可以在其他地方使用,并且使该操作具有通用性,从而提高了可用性(您无需传递构建器函数);它还允许引入其他通用运算,例如
,
,
...