列出转换

时间:2011-07-12 03:10:01

标签: prolog flatten gnu-prolog

我是prolog的新手,我正试图压扁一个如下列表:

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 个答案:

答案 0 :(得分:1)

使用递归: - )

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)。