【发布时间】:2015-06-05 19:16:36
【问题描述】:
我需要一些帮助。我搜索了数据库并found one question already asked 关于这个例子,但答案并没有真正帮助我,所以我想发布我自己的问题。
任务是将列表元素的连续重复打包成子列表:
% ?- pack([a,a,a,a,b,c,c,a,a,d,e,e,e,e],X).
% X = [[a,a,a,a],[b],[c,c],[a,a],[d],[e,e,e,e]].
这是我得到的:
pack([], []).
pack([X], [[X]]).
pack(Liste, Ergebnis):-
Liste = [H, T|TS],
H \= T,
pack([T|TS], Ergebnis1),
append([[H]], Ergebnis1, Ergebnis).
pack([H, H|HS], Ergebnis):-
pack([H|HS], Ergebnis1),
append([H|HS], Ergebnis1, Ergebnis).
第一种情况非常有效(H \= T 的情况)。第二个没有,我真的不知道为什么。有人可以帮助我并根据我的解决方案解释问题吗?
谢谢
【问题讨论】:
-
如何发布参考?通过发布链接
-
...连续重复...:为什么
b在[a,a,a,a,b,c,c,a,a,d,e,e,e,e]中是连续重复的? -
b 不是连续重复,它只是显示结果应该是什么样子的示例。
-
但是您的问题陈述仅涉及第二个参数中的连续重复。那么为什么
b在那里呢?