在 Extended Abstract: A Functional Derivation
of the Warren Abstract Machine 中,Maciej Pir'og和Jeremy Gibbons将数据结构描述为
半持久性[7]“如果我们可以回溯到以前的版本,
但我们从不同时保留两种不同的修改(兄弟)
同一个祖先。“
假设某个对象dict : System.Collections.Dictionary<A, FSharp.Collections.List<B>>
。
让字典中的值表示与某些键相关的状态。 dict
是一个有效的半持久状态跟踪机制,假设只使用了一个这样的Dictionary
吗?这是由Dictionary
类型的可变性与先前状态序列相结合保证的吗?
答案 0 :(得分:1)
这是一个艰难的(解析,不能少回答) - 请注意:这是我对抽象给出的理解...... 答案是肯定的和否。这里的关键在于使用,不一定是结构。字典本身是持久的。像作者一样,你可以半持久的方式使用它。但是,将状态值放在列表中可能会有点麻烦,因为您可能想要保留兄弟姐妹(再次,在使用中)。
为了更好地理解 - 请到源头:
https://www.lri.fr/~conchon/publis/spds-esop08.pdf