我使用SWI-Prolog,我想列出其他几个列表。如何在序言中创建列表
例如,我想提出以下三个列表
[a,b,c]
[1,2]
[d]
成一个较大的一个,看起来像[[a,b,c],[1,2],[d]]
。
divideList([]):-!.
divideList([Head|Tail]):-
list_to_set(Head,H),%H is a List
divideList(Tail).
我想把所有的H放在一个列表中。 我该怎么做?
我使用SWI-Prolog,我想列出其他几个列表。如何在序言中创建列表
例如,我想提出以下三个列表
[a,b,c]
[1,2]
[d]
成一个较大的一个,看起来像[[a,b,c],[1,2],[d]]
。
divideList([]):-!.
divideList([Head|Tail]):-
list_to_set(Head,H),%H is a List
divideList(Tail).
我想把所有的H放在一个列表中。 我该怎么做?
的问题是,你不使用你的谓词H至放列表中选择所需
这应该这样做
divideList([], []):-!.
divideList([Head|Tail], [H|HTail]):-
list_to_set(Head,H),%H is a List
divideList(Tail, HTail).
第二个参数将有你的名单列表。
根本不需要切割。 – 2011-05-13 08:30:54
@larsman:对,但我刚刚添加了OP代码中缺少的内容,所以我将其保留原样。 – gusbro 2011-05-13 13:22:59
问题不明确。你有没有固定数量的列表,你想把它放在一个列表中? – gusbro 2011-05-12 19:03:13
是的,我有三个列表,但可以更改。我想把它们放在更大的一个。 – Mary 2011-05-12 20:05:17
假设三个列表与变量A,B,C统一,那么您只需编写[A,B,C] – gusbro 2011-05-12 20:11:32