Здрасти.
Да ти поясня какво прави функцията ти дел:
del(Attribute,List,Result)
Където
Attribute - какво се трие.
List - списъка от който се трият елементите.
Result- резултата след изтриване.
Първия ти случай:
del (A, [AlT], L) :- del(A, T, L). Изтрива елемента ако A е глава на опашката първи елемент.
Пример:
искаш да изтриеш буквата о от списъка оасдасдассд.
Тогава се влиза в този случай.
Втория случай:
del (A, [BlT], [BlT1]) :- del(A, T, T1).
Показва че елемента който трябва да изтриеш не съществува в главата т.е. се намира в опашката.
Също така в задачата има пропуск. Трябва да се започва с del(A,[],[]).
Сега по въпросите ти:
del(A,L1,L2) e функцията за изтриване.
функцията дел(A,L1,L2) изтрива всички елементи от подадения списък L (в твоя случай L1).
Използването на опашка ти гарантира обхождането на списъка.
B != А - глава която не е търсения елемент за изтриване.
T - опашка. Листа представлява двоика от единичен елемент(Head) и всички останали (Tail) [Head|Tail].
Т1- новата опашка която ще се получи при изтриването на елемента от старата опашка T.
L - в случая съхранява резултата ти.
Съжалявам ако има някакви грешки, малко съм ги позабравил нещата. Ако някой колега има забележки приемам критика