从列表列表中获取每个第一个元素

时间:2018-05-17 14:11:03

标签: prolog

我有一份清单[[1,2,4],[5,6,7,8],[7,8,9]]

我想获得列表中的每个第一个元素,即[1,5,7]

1 个答案:

答案 0 :(得分:1)

以下是使用maplist/3nth0/3的解决方案:

first_of_each(List, Result) :- maplist(nth0(0), List, Result).

这是使用递归的解决方案:

first_of_each([], []).
first_of_each([[First|_]|Xs], [First|Ys]) :- first_of_each(Xs, Ys).

用法示例:

?- first_of_each([[1,2,4],[5,6,7,8],[7,8,9]], Y).
Y = [1, 5, 7].