Toggle navigation
?
users online
Logout
Open hangout
Open chat for current file
extract( [] , [] ) . extract( [X|Xs] , Ys ) :- extract(X,Ys,Y1), extract(Xs,Y1). extract( X , [X|Ys] , Ys ) :- \+ is_list(X), !. extract( X , [X|Ys] , Ys ) :- flat_list(X) , !. extract( [X] , Ys , Y1 ) :- extract(X,Ys,Y1), !. extract( [X|Xs] , Ys , Y2 ) :- extract(X,Ys,Y1), extract(Xs,Y1,Y2) . flat_list( [] ) . flat_list( [X|_] ) :- is_list(X), !, fail . flat_list( [_|Xs] ) :- flat_list(Xs) . flatten([], []). flatten([X|Xs], [X|Ys]) :- flatten(Xs, Ys). flatten([[X|Xs]|Ys], [Zs]) :- flatten(X,Ys, Zs), flatten(Xs, Zs).