我已经很长时间没有处理 Sicstus prolog 中的标签问题了。我想创建一个长度为 7 的数组,其中每个项目又是一个由 4 个整数组成的数组。我尝试了以下代码,但它不起作用并给出实例化错误。
:- use_module(library(clpfd)).
schedule(Ss) :-
length(Ss, 7),
Ss = [[A, B, C, D]|T],
solve_days(Ss),
labeling([], Ss).
solve_days([]).
solve_days([[A, B, C, D]|T]):-
A in 1..3,
B in 4..7,
C in 7..9,
D in 6..10,
solve_days(T).
谁能给我建议如何解决这个问题?非常感谢!
最佳答案
标签的参数必须是一个简单的列表。解决这个问题的一种方法是使用append/3来压平A..D和T,例如追加([A,B,C,D],T,Vars)
。
关于prolog - Sicstus 序言 : labeling a list in a list,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17256552/