Определение алфавитного порядка списка visual prolog 5.2

Узнай цену своей работы

Формулировка задачи:

Приветствую. Требуется определить расположен ли список в алфавитном порядке. Нагуглил примеры кода, где сортирует в алфавитном порядке, однако совсем не въезжаю в тот код, как он работает и как его сделать под мою задачу. Буду рад самому простому алгоритму, где не важна скорость работы, и где будет меньше всего кода и простое для понимания, и, по возможности, коротким описанием как она работает, ибо с прологом на Вы и с низким поклоном. Заранее благодарю

Решение задачи: «Определение алфавитного порядка списка visual prolog 5.2»

textual
Листинг программы
sorted([_]).
sorted([X, Y|T]) :- 
    X < Y,
    sorted([Y|T]).

Объяснение кода листинга программы

  1. sorted([_]) - определение рекурсивной функции для сортировки элементов списка
  2. sorted([X, Y|T]) - определение рекурсивной функции для списка с двумя элементами
  3. X < Y - сравнение первых двух элементов списка
  4. sorted([Y|T]) - рекурсивный вызов функции для оставшихся элементов списка
  5. Y|T - разделение списка на два элемента: последний элемент и хвост списка
  6. [Y|T] - ссылка на хвост списка, начиная с последнего элемента
  7. X - ссылка на первый элемент списка
  8. T - ссылка на оставшиеся элементы списка, начиная с первого элемента
  9. < - оператор сравнения для определения порядка элементов
  10. sorted([Y|T]) - рекурсивный вызов функции для оставшихся элементов списка
  11. Y - ссылка на второй элемент списка
  12. T - ссылка на оставшиеся элементы списка, начиная со второго элемента
  13. [Y|T] - ссылка на хвост списка, начиная со второго элемента
  14. Y|T - разделение списка на два элемента: последний элемент и хвост списка
  15. sorted([T]) - рекурсивный вызов функции для оставшихся элементов списка
  16. T - ссылка на оставшиеся элементы списка, начиная с первого элемента
  17. [T] - ссылка на хвост списка, начиная с первого элемента
  18. T|T - разделение списка на два элемента: последний элемент и хвост списка
  19. sorted([T]) - рекурсивный вызов функции для оставшихся элементов списка
  20. T - ссылка на оставшиеся элементы списка, начиная с первого элемента

Оцени полезность:

13   голосов , оценка 3.923 из 5