У меня есть список [1,2,3,1,0] при запуске, но его нужно разбить на несколько подписок, где новые списки становятся [[1,2 , 3], [1], [0]].Списки прологов возрастания в списке
Основная концепция, которую я знаю в прологе, - это сравнение чисел.
ascending([Head | [HeadTail|TailTail]]) :- Head =< HeadTail.
Он отлично работает. Спасибо Скотту. – chosenman
Есть ли способ не использовать обратный вместо этого? – chosenman
Вы можете создать списки в правильном порядке, используя 'append', но тогда вам нужно будет отслеживать * tail * текущего подсписок (что можно упростить, сделав его своим параметром). Если это проблема производительности, я думаю, что использование «обратного» будет быстрее (один обход вместо этого каждый раз, когда вы добавляете), но вам нужно будет просмотреть его. –