parse(S) :- atom_chars(S,Chars), digits(Chars,[]).

digit(0) --> ['0'].
digit(1) --> ['1'].

digits(0) --> [].
digits(Value) -->
    digit(DigitValue),
	digits(PrevValue), { 
