Написать программу для получения значения n-го элемента списка - Prolog
Формулировка задачи:
Срочно ! Сессия задали много переделать работ... Облегчите работу плиз !!! Написать программу для получения значения n-го элемента списка. Например: в списке [three, one, two] второй элемент равен one.
Решение задачи: «Написать программу для получения значения n-го элемента списка»
textual
Листинг программы
nth([H|_], 1, H). nth([_|T], N, X):- N > 1, NN is N - 1, nth(T, NN, X).
Объяснение кода листинга программы
nth([H|_], 1, H)- этот фрагмент кода проверяет, является ли список пустым. Если это так, то возвращается значение первого элемента списка (H).nth([_|T], N, X):-- этот фрагмент кода проверяет, является ли список не пустым. Если это так, то:N > 1- этот фрагмент кода проверяет, является ли номер элемента больше 1. Если это так, то:NN is N - 1- этот фрагмент кода вычисляет номер предыдущего элемента.nth(T, NN, X)- этот фрагмент кода рекурсивно вызывает функцию nth для списка T и номера NN, и присваивает результат переменной X.- Возвращается значение X.