Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- :- set_prolog_flag(double_quotes, chars).
- l_c_prefix([], []).
- l_c_prefix([H], H).
- l_c_prefix([H1,H2|T], P) :-
- maplist(append(P), L, [H1,H2|T]),
- ( empty_h(L)
- ; maplist(head, L, Hs),
- not_equal(Hs)
- ).
- empty_h([[]|_]).
- empty_h([[_|_]|T]) :-
- empty_h(T).
- head([H|_], H).
- not_equal([E|Es]) :-
- differences(Es, E).
- differences([X|Xs], E) :-
- if_(first_diff(X,E), true, differences(Xs,E)).
- first_diff(X, Y, T) :-
- ( X == Y -> T = false
- ; X \= Y -> T = true
- ; T = true, dif(X, Y)
- ; T = false, X = Y
- ).
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement