首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将整数列表转换为CLPFD域

将整数列表转换为CLPFD域
EN

Stack Overflow用户
提问于 2022-04-06 01:53:36
回答 1查看 53关注 0票数 1

我正在尝试将整数列表转换为CLPFD域。例如[1,5,7] -> 1\/5\/7.我试着看了文件,但什么也找不到。我发现的唯一东西是fd_dom/2. dom文档。在这里,他们正在将一个域转换成一个整数列表(与我想要的相反)。我是CLPFD和prolog的新手。所以,如果有人除了回答我的问题之外还能解释fd_dom文档,我会非常感激的。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-04-06 09:16:21

下面是将整数列表转换为域(析取)的内容:

代码语言:javascript
复制
list_domain_disjunction([D|Ds],Disj) :-
        foldl(disj,Ds,D,Disj).
disj(A,B,C) :- C = \/(B,A).

示例:

代码语言:javascript
复制
?- list_domain_disjunction([1,5,7],X).
X = 1\/5\/7.

人们可以看到这种分离是如何使用write_canonical/1“真正”表示的。

代码语言:javascript
复制
?- write_canonical(1\/5\/7).
\/(\/(1,5),7)

注意:list_domain_disjunction/2是不可逆的,也就是说,它不能用于将一个disjuction转换为一个整数列表。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71760211

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档