Prolog ile Liste İşlemleri
Posted: December 23rd, 2008 | Author: Ahmet Kakıcı | Filed under: Programlama | Tags: kod, Programlama, prolog | 2 Comments »Prolog’un bel kemiği olan liste veri yapısı için daha önceden kullandığım liste fonksiyonlarını aşağıda listeledim. Fonksiyonların isimlerinden ne iş yaptıkları belli oluyor yine de anlamadığınız yer olursa bir yorum bırakabilirsiniz.
PREDICATES listeGoster(liste) uzunluk(liste,int) uye(int,liste) ekle(int,liste,liste) yoksaEkle(int,liste,liste) sil(int,liste,liste) hepsiniSil(int,liste,liste) elemanTopla(liste,int) arttir(int,liste,liste) birles(liste,liste,liste) birlesim(liste,liste,liste) kesisim(liste,liste,liste) buda(liste,liste) tersCevir(liste,liste) tersCevirici(liste,liste,liste) prefix(liste,liste) suffix(liste,liste) CLAUSES listeGoster([]). listeGoster([B|K]):-write(B),nl,listeGoster(K). uzunluk([],0). uzunluk([_|K],U):-uzunluk(K,X),U=X+1. uye(X,[X|_]). uye(X,[_|K]):-uye(X,K). ekle(X,L,[X|L]). yoksaEkle(X,L,L):-uye(X,L),!. yoksaEkle(X,L,[X|L]). sil(X,[X|L],L). sil(X,[B|K1],[B|K2]):-sil(X,K1,K2). hepsiniSil(_,[],[]). hepsiniSil(X,[X|L],M):-sil(X,L,M),!. hepsiniSil(X,[Y|K1],[Y|K2]):-sil(X,K1,K2). elemanTopla([],0). elemanTopla([X|K],T):-elemanTopla(K,Y),T=Y+X. arttir(_,[],[]). arttir(X,[B1|K1],[B2|K2]):-B2=B1+X,arttir(X,K1,K2). birles([],L,L). birles([B|K1],L2,[B|K2]):-birles(K1,L2,K2). birlesim([],L,L). birlesim([B|K1],L2,K2):- uye(B,L2),birlesim(K1,L2,K2),!. birlesim([B|K1],L2,[B|K2]):- birlesim(K1,L2,K2). kesisim([],_,[]). kesisim(_,[],[]). kesisim([B|K1],L2,[B|K2]):-uye(B,L2),kesisim(K1,L2,K2),!. kesisim([_|K1],L2,K2):-kesisim(K1,L2,K2). buda([],[]). buda([B|K],L):- uye(B,K),buda(K,L),!. buda([B|K1],[B|K2]):- buda(K1,K2). tersCevir(X,Y):-tersCevirici(X,[],Y). tersCevirici([],X,X). tersCevirici([B|K],TMP,SONUC) :- tersCevirici(K,[B|TMP],SONUC). prefix([],_). prefix([B|K1],[B|K2]):-prefix(K1,K2). suffix(X,Y):-tersCevir(X,TX),tersCevir(Y,TY),prefix(TX,TY).
Benzer yazılar:





acaba prolog da iki nokta arasındaki yolu bulan veya labirent programı var mı arsivinizde
iyi çalışmalar
Malesef yok. Eğer yazarsan buradan paylaşabiliriz ;)