Получить каждый первый элемент из списка списков - PullRequest
0 голосов
/ 17 мая 2018

У меня есть список списков [[1,2,4],[5,6,7,8],[7,8,9]]

Я хочу получить каждый первый элемент списка, т.е. [1,5,7]

1 Ответ

0 голосов
/ 17 мая 2018

Вот решение с использованием 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].
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...