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

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

我会做这样的事情:

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

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

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

最佳答案

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

关于prolog - 如何将变量域定义为非连续范围,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/16395014/

10-11 09:21