Advertisement
Guest User

ExercitiiPLRaduP

a guest
Apr 13th, 2019
127
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Prolog 1.35 KB | None | 0 0
  1. % Lists
  2.  
  3. member_of(X,[X|_]).
  4. member_of(X,[_|Tail]) :- member_of(X,Tail).
  5.  
  6. concat_lists([], List, List).
  7. concat_lists([Elem | List1], List2, [Elem | List3]) :-
  8.         concat_lists(List1, List2, List3).
  9.  
  10. nr_elem([], 0).
  11. nr_elem([H|T], N) :- nr_elem(T, M), N is M + 1.
  12.  
  13. schimba([], []).
  14. schimba([H | T], [H2 | T2]) :- H2 is H*2, schimba(T, T2).
  15.  
  16. prefix(P, L) :- append(P,_,L).
  17. sufix(S, L) :- append(_,S,L).
  18.  
  19. all_a([]).
  20. all_a([a|T]) :- all_a(T).
  21.  
  22. trans_a_b([], []).
  23.  
  24. trans_a_b([a | T], [ b | B]) :- trans_a_b(T, B).
  25.  
  26. scalarMult(S, [], []).
  27. scalarMult(S, [H | T], [H2 | T2]) :- H2 is S * H, scalarMult(S, T, T2).
  28.  
  29. dot([], [], 0).
  30. dot([H1 | T1], [H2 | T2], R) :- dot(T1, T2, R2), R is R2 + H1 * H2.
  31.  
  32. max([X] , X).
  33. max([H | T], H) :- max(T, M), H >= M.  
  34. max([H | T], M) :- max(T, M), H < M.
  35.  
  36. palindrome([]).
  37. palindrome(L) :- inversa_aux(L, [], L).
  38.  
  39. inversa([],[]).
  40. inversa([H|T], I):- inversa(T, I1), append(I1, [H], I).
  41.  
  42. inversa_aux([], A, A).
  43. inversa_aux([H|T], R, A) :- inversa_aux(T, [H|R], A).
  44.  
  45. remove_duplicates([], []).
  46. remove_duplicates([H | T], [H | R]) :- not(member(H, T)), remove_duplicates(T,R).
  47. remove_duplicates([H | T], [R]):- member(H, T), remove_duplicates(T,R).
  48. /** <examples>
  49.  
  50. ?- member_of(a,[a,b,c]).
  51. ?- member_of(X,[a,b,c]).
  52. ?- concat_lists([1, 2, 3], [d, e, f, g], X).
  53. ?- concat_lists(X, Y, [a, b, c, d]).
  54.  
  55. */
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement