我想以这样的方式将变量绑定到几个原子,以便稍后它将与这些原子之一统一。直觉上它应该像这样工作(假设 ; 是可能值的析取):
?- X = (apple; pear), X = apple.
X = apple.
?- X = (apple; pear), X = apple, X = pear.
false.
?- X = (apple; pear; orange), X = (apple; orange).
X = (apple; orange).
?- X = (apple; orange), X = (pear; orange).
X = orange.
?- X = (apple; orange), X = pear.
false.
如您所见,这个想法接近类型层次结构的概念。所以,我想知道是否有一些内置的(元)谓词可以很容易地做这样的事情,或者是否有一些常用的方法使用某种数据结构来建模,或者我必须构建这种谓词从头开始?