Преобразование списков - PullRequest
3 голосов
/ 12 июля 2011

Я новичок в прологе и пытаюсь сгладить список, подобный следующему:

X = [[[0,0,1],[1,0,2]],[[0,1,3],[0,2,2]],[[0,3,5],[0,4,4]],[[0,5,4],[0,6,5]]]

Требуемый вывод:

X = [[0,0,1],[1,0,2],[0,1,3],[0,2,2],[0,3,5],[0,4,4],[0,5,4],[0,6,5]]

Как я могу это сделать?

1 Ответ

1 голос
/ 12 июля 2011

Использовать рекурсию: -)

myflatten([], []).
myflatten([[A, B]|T], [A|[B|FlattenedT]]) :- myflatten(T, FlattenedT).

А затем запрос:

? - myflatten ([[[0,0,1], [1,0,2]], [[0,1,3], [0,2,2]], [[0,3, 5], [0,4,4]], [[0,5,4], [0,6,5]]], X).

...