如何将变量域定义为非连续范围

时间:2013-05-06 08:41:41

标签: prolog constraint-programming clpfd sicstus-prolog

我从SICStus Prolog开始,我想定义一个变量,比如说StartingTimes,以便有一个由列表[1, 5, 10]定义的域

如何在SICStus Prolog中完成?

我会做类似的事情:

 domain(StartingTimes, 1, 10)
 StartingTimes #= 1 #\/ StartingTimes #= 5 #\/ StartingTimes #= 10

但这太可怕了。必须有一个简单的方法来做到这一点。也许fd_sets

注意:我试图找出它是如何在手册中完成的,但是prolog使用了常用词,并且很难使用谷歌。

1 个答案:

答案 0 :(得分:8)

?- use_module(library(clpfd)). 
?- StartingTimes in {1,5,10}.