Advertisement
jbn6972

Untitled

Jul 31st, 2022 (edited)
341
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Ruby 2.64 KB | None | 0 0
  1. -----------PERMUTATION/MEMBER/CONCATENATION---------------------
  2. % ---------------------------------------------------------------------------------------------------------
  3. % Permuatation      input = perm([a,b,c,d],X).
  4. perm(List,[H|Perm]):-delete(H,List,Rest),perm(Rest,Perm).
  5. perm([],[]).
  6.    
  7. delete(X,[X|T],T).
  8. delete(X,[H|T],[H|NT]):-delete(X,T,NT).
  9.  
  10. % ---------------------------------------------------------------------------------------------------------
  11. % Memeber       input = list_member(b,[a,b,c]).
  12. list_member(X,[X|_]).
  13. list_member(X,[_|TAIL]) :- list_member(X,TAIL).
  14.  
  15. % ---------------------------------------------------------------------------------------------------------
  16. % Concatenation         input = list_concat([1,2],[a,b,c],NewList).
  17. list_concat([],L,L).
  18. list_concat([X1|L1],L2,[X1|L3]) :- list_concat(L1,L2,L3).
  19.  
  20.  
  21. ----------------------INTERSECTION UNION----------------------------------
  22. % ---------------------------------------------------------------------------------------------------------
  23. % Union      input = list_union([a,b,c,d,e],[a,e,i,o,u],L3).
  24. list_member(X,[X|_]).
  25. list_member(X,[_|TAIL]) :- list_member(X,TAIL).
  26.  
  27. list_union([X|Y],Z,W) :- list_member(X,Z),list_union(Y,Z,W).
  28. list_union([X|Y],Z,[X|W]) :- \+ list_member(X,Z), list_union(Y,Z,W).
  29. list_union([],Z,Z).
  30.  
  31. % ---------------------------------------------------------------------------------------------------------
  32. % Intersection      input = list_intersect([a,b,c,d,e],[],L3).
  33. list_member(X,[X|_]).
  34. list_member(X,[_|TAIL]) :- list_member(X,TAIL).
  35.  
  36. list_intersect([X|Y],Z,[X|W]) :-
  37.    list_member(X,Z), list_intersect(Y,Z,W).
  38. list_intersect([X|Y],Z,W) :-
  39.    \+ list_member(X,Z), list_intersect(Y,Z,W).
  40. list_intersect([],Z,[]).
  41.  
  42. ---------------------------------MONKEY BANANA--------------------------------------------------------
  43. % ---------------------------------------------------------------------------------------------------------
  44. % Union      input = list_union([a,b,c,d,e],[a,e,i,o,u],L3).
  45. list_member(X,[X|_]).
  46. list_member(X,[_|TAIL]) :- list_member(X,TAIL).
  47.  
  48. list_union([X|Y],Z,W) :- list_member(X,Z),list_union(Y,Z,W).
  49. list_union([X|Y],Z,[X|W]) :- \+ list_member(X,Z), list_union(Y,Z,W).
  50. list_union([],Z,Z).
  51.  
  52. % ---------------------------------------------------------------------------------------------------------
  53. % Intersection      input = list_intersect([a,b,c,d,e],[],L3).
  54. list_member(X,[X|_]).
  55. list_member(X,[_|TAIL]) :- list_member(X,TAIL).
  56.  
  57. list_intersect([X|Y],Z,[X|W]) :-
  58.    list_member(X,Z), list_intersect(Y,Z,W).
  59. list_intersect([X|Y],Z,W) :-
  60.    \+ list_member(X,Z), list_intersect(Y,Z,W).
  61. list_intersect([],Z,[]).
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement