是否可以将变量域设置为clpfd中名称的枚举?

时间:2013-05-09 20:58:42

标签: prolog clpfd sicstus-prolog

我可以用这种方式指定变量的域:

MyVar in 1..10

MyVar in {1,10,15}

但是我有一个我想要指定的变量:

Activity_1__room in {room_1, room_2}  % i.e. as atoms not as integers

有可能吗?当然,可以将名称编码为整数,但这是否真的有必要?

1 个答案:

答案 0 :(得分:7)

你不能使用原子。 CLPFD中的域范围超过整数。

但是假设您想说“MyVar应该采用列表L的一个值”,即该集合不是先验已知的。这可以编码为:

?- list_to_fdset(L, Set),
   MyVar in_set Set.