我们假设我有一个变量V
,V
的值可以是范围0..5
中的任意数字。但是,某些值比其他值更优选,因此它可以帮助我将V
的域指定为有序序列。
我可以在SICStus Prolog中完成吗?
示例:
% PSEUDOCODE
%
% 3 is more preferred than 4; 4 is more preferred than 2; and so on..
% So I would write something like this:
V in {3,4,2,5,1,0},
getDomainAsList(V, List), % the predicate do not exist
% and the List would be: [3,4,2,5,1,0] and not [1,2,3,4,5]
我阅读了手册,但没有找到任何有用的内容。我可以通过自定义标签来解决问题(例如,将V的域转换为列表,对其进行排序并将值分配给V
)但我希望性能更差。
答案 0 :(得分:3)
有一个手册页描述了这一点。
请参阅标记/ 2,here的值(枚举)选项:
答案 1 :(得分:2)
您可以按首选顺序拥有所有值的数组或列表。
然后在程序中使用数组索引,最后返回与索引对应的值。