 take1word([], [], []).
 take1word([H|T],[],T) :- integer(H).
 take1word([H|T],[H|Hs],Y) :- float(H), take1word(T,Hs,Y); atom(H), take1word(T,Hs,Y).
 
 separatewords([],[]).
 separatewords(L, [W|T]) :- take1word(L,W,R), separatewords(R,T).
 
:-separatewords([h,e,l,l,o,1,o,v,e,r,3,t,h,e,r,e], X), write(X), nl.
