我正在 Prolog 中编写一个简单的程序安全检查器,我需要一个数据结构来保存变量估值。由于我想检测我什么时候再次访问同一个状态,所以这个结构必须支持一些合理的比较语义,所以我可以将访问过的状态存储在集合中。
library(avl)
具有方便的 getter/setter 接口。问题是,持有相同映射的 AVL 可以采取多种形式。因此,如果它们的 AVL 表示不同,则两个相同的状态将被认为是不同的。
在有序列表中保存映射的结构将没有这个问题。但是,我在 Sicstus 文档中找不到类似的东西。是否有任何标准结构可以满足我的需要,或者我必须自己实现它?