Facebook
From Unique Leopard, 5 Years ago, written in Plain Text.
Embed
Download Paste or View Raw
Hits: 185
  1. %Czy listy som identyczne?
  2. a2b([],[]).
  3. %to na gurze trza dodac bo inaczej prolog nie wie co robic jak taila przejrzy
  4. a2b([gej|Ta],[goj|Tb]) :- a2b(Ta,Tb).
  5. %albo wincej malych liter, albo pojedyncze w apostrofach
  6. a2b(['a'|Ta],['b'|Tb]) :- a2b(Ta,Tb).
  7.  
  8. %czy wienksze?
  9. wienkszy(succ(_),0).
  10. wienkszy(succ(X),succ(Y)) :- wienkszy(X,Y).
  11.  
  12. %czy drugi na liscie?
  13. member2(X,[_,X|_]).
  14.  
  15. %takie same listy poza pierwsymi dwiema;
  16. takiesame([_,_|T],[_,_|T]).
  17.  
  18. %tlumacz slowek
  19. tran(eins,one).
  20. tran(zwei,two).
  21. tran(drei,three).
  22. tran(vier,four).
  23. tran(fuenf,five).
  24. tran(sechs,six).
  25. tran(sieben,seven).
  26. tran(acht,eight).
  27. tran(neun,nine).
  28.  
  29. tlum([],[]).
  30. tlum([G|Tg],[E|Te]) :- tran(G,E), tlum(Tg,Te).
  31.  
  32. %podwajanie elementow tablicyyyy
  33. twice([],[]).
  34. twice([H|T],[H,H|Tx]) :- twice(T,Tx).
  35.  
  36. %dlugosc listy
  37. len([],0).
  38. len([_|T],N):- len(T,X), N is X+1
  39.  
  40. leng(List,Length) :- accLen(List,0,Length). %<opcjonalne
  41. accLen([_|T],A,L) :-  Anew is A+1, accLen(T,Anew,L).
  42. accLen([],A,A).
  43.  
  44. %najwinksza wwartosc listy
  45. max(List,Max) :-
  46.      List = [H|_],
  47.      accMax(List,H,Max). %bufor zeby zero nie psulo
  48.  
  49. accMax([H|T],A,Max) :-
  50.    H > A,
  51.    accMax(T,H,Max).
  52.  
  53. accMax([H|T],A,Max) :-
  54.    H =< A,
  55.    accMax(T,A,Max).
  56.  
  57. accMax([],A,A).
  58.  
  59. %suma dwuch lsit
  60. addone([],[]).
  61. addone([H|T], [H1|T1]) :-H1 is H + 1,
  62.         addone(T,T1).18
  63.  
  64. %element o danym indeksie z listy
  65. nrZlisty([H|_],1,H).
  66. nrZlisty([_|T],N,H) :- Nr is N +1 , nrZlisty(T,Nr,H).
  67.  
  68. %oswruc liste
  69. odwruc([],Z,Z).
  70. odwruc([H|T],Z,Acc) :- odwruc(T,Z,[H|Acc]).