Определение алфавитного порядка списка visual prolog 5.2
Формулировка задачи:
Приветствую. Требуется определить расположен ли список в алфавитном порядке. Нагуглил примеры кода, где сортирует в алфавитном порядке, однако совсем не въезжаю в тот код, как он работает и как его сделать под мою задачу. Буду рад самому простому алгоритму, где не важна скорость работы, и где будет меньше всего кода и простое для понимания, и, по возможности, коротким описанием как она работает, ибо с прологом на Вы и с низким поклоном.
Заранее благодарю
Решение задачи: «Определение алфавитного порядка списка visual prolog 5.2»
textual
Листинг программы
sorted([_]). sorted([X, Y|T]) :- X < Y, sorted([Y|T]).
Объяснение кода листинга программы
sorted([_])- определение рекурсивной функции для сортировки элементов спискаsorted([X, Y|T])- определение рекурсивной функции для списка с двумя элементамиX < Y- сравнение первых двух элементов спискаsorted([Y|T])- рекурсивный вызов функции для оставшихся элементов спискаY|T- разделение списка на два элемента: последний элемент и хвост списка[Y|T]- ссылка на хвост списка, начиная с последнего элементаX- ссылка на первый элемент спискаT- ссылка на оставшиеся элементы списка, начиная с первого элемента<- оператор сравнения для определения порядка элементовsorted([Y|T])- рекурсивный вызов функции для оставшихся элементов спискаY- ссылка на второй элемент спискаT- ссылка на оставшиеся элементы списка, начиная со второго элемента[Y|T]- ссылка на хвост списка, начиная со второго элементаY|T- разделение списка на два элемента: последний элемент и хвост спискаsorted([T])- рекурсивный вызов функции для оставшихся элементов спискаT- ссылка на оставшиеся элементы списка, начиная с первого элемента[T]- ссылка на хвост списка, начиная с первого элементаT|T- разделение списка на два элемента: последний элемент и хвост спискаsorted([T])- рекурсивный вызов функции для оставшихся элементов спискаT- ссылка на оставшиеся элементы списка, начиная с первого элемента