3

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

MyVar in 1..10

或者

MyVar in {1,10,15}

但我有一个变量,我想这样指定:

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

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

4

1 回答 1

7

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

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

?- list_to_fdset(L, Set),
   MyVar in_set Set.
于 2013-05-10T07:51:24.560 回答