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

Mar*_*cka 3 prolog constraint-programming sicstus-prolog clpfd

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

我怎样才能在SICStus Prolog中做到这一点?

我会做的事情如下:

 domain(StartingTimes, 1, 10)
 StartingTimes #= 1 #\/ StartingTimes #= 5 #\/ StartingTimes #= 10
Run Code Online (Sandbox Code Playgroud)

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

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

Mat*_*son 8

?- use_module(library(clpfd)). 
?- StartingTimes in {1,5,10}.
Run Code Online (Sandbox Code Playgroud)