list - 测试 Prolog 差异列表

标签 list prolog difference-lists

我一直在阅读关于差异列表有多大的内容,我希望测试书中的一些示例。但似乎您不能以与例如 append([1,2,3], [4,5], X) 相同的方式将列表作为输入传递,其中 X=[1,2,3, 4,5]。奇怪的是,我查阅过的书都没有提到这一点。

我在 swipl 上运行代码,我有兴趣测试不同的附加谓词:

dapp(A-B,B-C,A-C).

和“旋转列表的第一个元素”谓词:
drotate([H|T]-T1,R-S) :- dapp(T-T1,[H|L]-L,R-S).

任何想法,我如何在 swipl 中测试这些谓词?

最佳答案

尝试:

dapp([1,2,3|X] - X,[4,5,6] - [],Y - []).
drotate([1,2,3|X] - X,Y - []).

Y 是两个谓词的答案。

关于list - 测试 Prolog 差异列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6635451/

相关文章:

jquery - 如何重置可排序 jquery 列表中的列表项而不是完全删除它?

c# - .Sort(Function(x, y) -> 当没有要排序的内容时重新排列列表(即所有排序字段具有相同的值)

prolog - 在 Prolog 中生成整数的最佳方法

Prolog-从文件加载库

prolog - 在 Prolog 中使用差异列表附加元素的问题

lisp - 首先从 LISP 中的列表中排序原子,然后排序子列表

python - 将时间戳列表转换为可读格式(需要快速方法)

c# - 如何将特定数据存储到带有类的列表中

prolog - 查找与第一个输入元素配对的列表的长度

list - 是否可以在 Prolog 中编写一个空列表作为差异列表?