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.
IHRha2Uxd29yZChbXSwgW10sIFtdKS4KIHRha2Uxd29yZChbSHxUXSxbXSxUKSA6LSBpbnRlZ2VyKEgpLgogdGFrZTF3b3JkKFtIfFRdLFtIfEhzXSxZKSA6LSBmbG9hdChIKSwgdGFrZTF3b3JkKFQsSHMsWSk7IGF0b20oSCksIHRha2Uxd29yZChULEhzLFkpLgogCiBzZXBhcmF0ZXdvcmRzKFtdLFtdKS4KIHNlcGFyYXRld29yZHMoTCwgW1d8VF0pIDotIHRha2Uxd29yZChMLFcsUiksIHNlcGFyYXRld29yZHMoUixUKS4KIAo6LXNlcGFyYXRld29yZHMoW2gsZSxsLGwsbywxLG8sdixlLHIsMyx0LGgsZSxyLGVdLCBYKSwgd3JpdGUoWCksIG5sLgo=