Advertisement
Guest User

341_prolog

a guest
Dec 15th, 2019
85
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.58 KB | None | 0 0
  1. :- set_prolog_flag(double_quotes, chars).
  2.  
  3. l_c_prefix([], []).
  4. l_c_prefix([H], H).
  5. l_c_prefix([H1,H2|T], P) :-
  6. maplist(append(P), L, [H1,H2|T]),
  7. ( empty_h(L)
  8. ; maplist(head, L, Hs),
  9. not_equal(Hs)
  10. ).
  11.  
  12. empty_h([[]|_]).
  13. empty_h([[_|_]|T]) :-
  14. empty_h(T).
  15.  
  16. head([H|_], H).
  17.  
  18. not_equal([E|Es]) :-
  19. differences(Es, E).
  20.  
  21. differences([X|Xs], E) :-
  22. if_(first_diff(X,E), true, differences(Xs,E)).
  23.  
  24. first_diff(X, Y, T) :-
  25. ( X == Y -> T = false
  26. ; X \= Y -> T = true
  27. ; T = true, dif(X, Y)
  28. ; T = false, X = Y
  29. ).
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement