Advertisement
Tavi33

L5_BIA

Mar 31st, 2017
100
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.88 KB | None | 0 0
  1. % This buffer is for notes you don't want to save.
  2. % If you want to create a file, visit that file with C-x C-f,
  3. % then enter the text in that file's own buffer.
  4.  
  5. % Example #2
  6.  
  7. concatenating([],List,List).
  8. concatenating([Head|Tail],List,[Head|ResultedTail]) :-
  9. concatenating(Tail,List,ResultedTail).
  10.  
  11. %1
  12. inserting(Item, List, [Item|List]).
  13. inserting(Item, [Head|Tail], [Head|Result]) :-
  14. inserting(Item, Tail, Result).
  15.  
  16. %2
  17. deleting_one(Item, [Item|Tail], Tail).
  18. deleting_one(Item, [Head|Tail], [Head|Result]) :-
  19. deleting_one(Item, Tail, Result).
  20.  
  21. %3
  22. deleting_all(Item, [Item], []).
  23. deleting_all(Item, [Item|Tail], Result) :-
  24. deleting_all(Item, Tail, Result).
  25. deleting_all(Item, [Head|Tail], [Head|Result]) :-
  26. not(Head = Item), deleting_all(Item, Tail, Result).
  27.  
  28. %4
  29. range(X, X, [X]) :- !.
  30. range(X, Y, Result) :-
  31. X =< Y, X1 is X + 1, range(X1, Y, RangeX1), append([X], RangeX1, Result).
  32.  
  33. %5
  34. get_last([SingleElement], SingleElement) :- !.
  35. get_last([_|Tail], Result) :-
  36. get_last(Tail, Result).
  37.  
  38. get_remaining_list([_], []) :- !.
  39. get_remaining_list([Head|Tail], [Head|Result]) :-
  40. get_remaining_list(Tail, Result).
  41.  
  42. rotate(List, 0, List) :- !.
  43. rotate([Head|Tail], Times, Result) :-
  44. Times > 0, get_last([Head|Tail], Last), get_remaining_list([Head|Tail], Remain), Times1 is Times - 1, rotate([Last|Remain], Times1, Result).
  45.  
  46. %6
  47. flatten_list([],[]).
  48. flatten_list([Item|List], Result) :-
  49. not(is_list(Item)),flatten_list(List,Result1),append([Item],Result1,Result).
  50. flatten_list([Head|Tail], Result) :-
  51. flatten_list(Head, FlatHead), flatten_list(Tail, FlatTail), append(FlatHead, FlatTail, Result).
  52.  
  53. %7
  54. inverting([], []) :- !.
  55. inverting([Head|Tail], Result) :-
  56. inverting(Tail, TailInvert), append(TailInvert, [Head], Result).
  57.  
  58. %8
  59. duplicate([], []):- !.
  60. duplicate([Head|Tail], Result) :-
  61. duplicate(Tail, TailDuplicate), append([[Head, Head]], TailDuplicate, Result).
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement