Програмен код на Prolog

Prolog – Head, Tail, Last, Member – Глава, опашка, край, член на списък

Взимане на Първия елемент от списък на Пролог.

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 – Изтриване на елементи от списък

Изтриване на елементи от списък на Пролог.

Изтриване на първо срещане на елемент от списък.

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 – метода на мехурчето

Един код на 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).

Няма коментари

  • Страница 3 от 3
  • <
  • 1
  • 2
  • 3
  1. #1 by Алекс on 05.04.2024 - 7:40

    Здравей,
    Имам две задачи – едната на PROLOG, а другата на LISP,. Въпроса ми е мога ли да ти ги изпратя да ги погледнеш?

  2. #2 by Ivelin Pavlov on 30.05.2024 - 10:04

    Може да, скоро не съм работил с тях, но може да пробваме

(will not be published)