prolog - Sicstus 序言 : labeling a list in a list

标签 prolog clpfd

我已经很长时间没有处理 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/

相关文章:

prolog - 使用 CLP 解决 PR​​OLOG 中的 Instant Insanity

prolog - 尝试用 Prolog 解决游戏问题

prolog - 可逆树长关系

PROLOG - 检查位置是否正确

Prolog clpfd::预期运算符

初学者序言

prolog - 停止 Prolog 推断值

http - SWI-Prolog http_post 和 http_delete 莫名其妙地挂起

list - 打印图的指定节点的图的所有循环,Prolog