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 の値の 1 つを取るべきだ」と言いたい、つまりセットがアプリオリにわかっていないとします。これは次のようにコーディングできます。

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