Програмен код на Prolog
Prolog – Head, Tail, Last, Member – Глава, опашка, край, член на списък
Публикувано от Ivelin Pavlov в Prolog Код, Код на 06 април 2012г.
Взимане на Първия елемент от списък на Пролог.
head([X|_],X). ?- head([a,b,c,d], X). % X = a
Взимане на опашката на списък (списък без първия елемент) на Пролог.
tail([_|L],L). ?- tail( [a,b,c,d,e], X). % X = [b, c, d, e]
Взимане на последният елемент от списък на Пролог.
last(X,[X]). last(X,[_|L]):- last(X,L). ?-last(X,[a,b,c]). % X = c
Намиране на елемент от списък, или съобщава дали дадем елемент принадлежи на списък на Пролог.
member(X,[X|_]). member(X,[_|L]):- member(X,L). ?-member(e,[a,b,c,d,e]). % Yes
Prolog – Delete – Изтриване на елементи от списък
Публикувано от Ivelin Pavlov в Prolog Код, Код на 05 април 2012г.
Изтриване на елементи от списък на Пролог.
Изтриване на първо срещане на елемент от списък.
delete(X,[X|L],L). delete(X,[Y|L1],[Y|L2]):- delete(X,L1,L2).
Пример със резултат
?- delete(2,[1,2,3,4],L). % 1,3,4
Изтриване на всички срещания на елементи от списък.
deleteall(X,[],[]). deleteall(X,[X|L],L1):- deleteall(X,L,L1). deleteall(X,[Y|L],[Y|L1]):- Y \= X, deleteall(X,L,L1).
Пример:
?- deleteall(5,[1,5,5,5,6,7,6,5],L). % 1,6,7,6
Prolog – Bubble sort – метода на мехурчето
Публикувано от Ivelin Pavlov в Prolog Код, Код на 05 април 2012г.
Един код на Prolog за нареждане на списък по големите, започвайки от най-малкото, по метода на мехурчето.
bubble(L,L1):- append(U,[X,Y|V],L),X>Y,append(U,[Y,X|V],L2),bubble(L2,L1). bubble(L,L). append([],L,L). append([X|L1],L2,[X|L3]):- append(L1,L2,L3). ?-bubble([3,4,2,3,2,1,67,86],L).
#1 by Алекс on 05.04.2024 - 7:40
Здравей,
Имам две задачи – едната на PROLOG, а другата на LISP,. Въпроса ми е мога ли да ти ги изпратя да ги погледнеш?
#2 by Ivelin Pavlov on 30.05.2024 - 10:04
Може да, скоро не съм работил с тях, но може да пробваме