Напишите логическую программу преобразования списка в список - Prolog

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

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

Помогите разобраться, задача звучит так: напишите логическую программу преобразования списка в список, состоящий из тех же элементов, но записанных в обратном порядке. Вот решение, которое я нашла, не могу понять, что означает эта строчка: "append([],L,L)." и что такое "L"?

Решение задачи: «Напишите логическую программу преобразования списка в список»

textual
Листинг программы
domains
list=integer*
 
predicates
reverse(list,list)
append(list,list,list)
 
clauses
 
append([],X,X).  %% пустой список сцепленный с произвольным X дает X
append([H|T],X,[H|Y]) :- append(T,X,Y). %% список из головы H и хвоста T, сцепленный с X есть список с головой H и
                                        %% хвостом, равным T сцепленному c X
 
reverse([],[]). %% реверс пустого есть пустой
reverse([H|T],Z) :- reverse(T,Q), append(Q,[H],Z). %% реверс списка с головой H и хвостом T есть реверс хвоста,
                                                   %% сцепленный со списком [H]

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

8   голосов , оценка 4.625 из 5
Похожие ответы