Как составить список списков в прологе - PullRequest
0 голосов
/ 12 мая 2011

Я использую 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 в один список.Как я могу это сделать?

1 Ответ

0 голосов
/ 13 мая 2011

Проблема в том, что вы не используете H в своем предикате для размещения нужного списка

Это должно сделать это

divideList([], []):-!.
divideList([Head|Tail], [H|HTail]):-
    list_to_set(Head,H),%H is a List 
    divideList(Tail, HTail).

Второй аргумент будет иметь ваш список списков.

...