У меня есть список списков в прологе в форме
[[Olivia,Thales,Canada Post,Cisco],[Jackson,Thales,Canada Post,Cisco],[Sophia,Cisco,Thales,Canada Post]]
Я пытаюсь прочитать список и создать новый список, который просто берет первый элемент каждого подсписок, как показано ниже.
[Olivia, Jackson, Sophia]
Пока я могу читать каждый элемент списка и записывать его в терминал, но как только он дойдет до последнего элемент завершается неудачно, потому что хвост списка не существует.
Этот код читает каждый подсписок, но не удается, когда я достигаю последнего элемента, потому что хвост списка больше не существует. Я попытался добавить is_list, чтобы проверить, существует ли хвост списка, но он, похоже, не работает.
listReading([H|T]) :- write(H), is_list(T),!, nl, listReading(T).
Я предполагаю, что лучший подход - это читать каждую подпрограмму -list, а затем добавить заголовок подсписка в новый список, однако я действительно изо всех сил пытаюсь получить правильную первую часть.