Advertisement
Guest User

Untitled

a guest
Apr 11th, 2018
73
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Prolog 0.59 KB | None | 0 0
  1. % Flatten a nested list structure.
  2.  
  3.  
  4.  
  5. my_flatten(X,[X]) :- \+ is_list(X).
  6. my_flatten([],[]).
  7. my_flatten([X|Xs],Zs) :- my_flatten(X,Y), my_flatten(Xs,Ys), append(Y,Ys,Zs).
  8.  
  9.  
  10.  merge([H1|T1],[H2|T2],[H1|NL]) :- H1 =< H2, merge(T1,[H2|T2],NL).
  11.  merge([H1|T1],[H2|T2],[H2|NL]) :- H1 > H2, merge([H1|T1],T2,NL).
  12.  merge([],L,L).
  13.  merge(L,[],L).
  14.  
  15.  listing(is_list/1, list_functor/1).
  16.  
  17. is_list(X) :-
  18.     functor(X, F, _),
  19.     list_functor(F).
  20.  
  21. list_functor('.').
  22. list_functor('[]').
  23.  
  24. treesum(nil, 0).
  25. treesum(tree(X,T1,T2), S) :-
  26.     treesum(T1, S1), treesum(T2, S2),
  27.     S is X+S1+S2.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement