以下是使用maplist/3
和nth0/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].