将数字分成数字到prolog中

时间:2012-06-23 22:05:20

标签: parsing prolog visual-prolog

我想使用prolog

将数字分成列表数字
like :
     if number is "345"
separate to [3, 4, 5]

我该怎么做?

stringTokenizer("", []) :- !.
stringTokenizer(Sen, [H|T]) :-
   frontToken(Sen, Token, Remd), H = Token, stringTokenizer(Remd, T).

我正在使用此谓词将字符串转换为字符串列表

1 个答案:

答案 0 :(得分:0)

由于没有明确的答案,你可以使用字符串是ascii整数列表的事实来简化这一点,正如@RayToal所建议的那样。只需确保字符串中的所有字符实际上都是整数。

stringTokenizer([], []).
stringTokenizer([N|Ns], [Digit|Rest]):-
    48 =< N, N =< 57,
    Digit is N - 48,
    stringTokenizer(Ns, Rest).

你的例子:

?- stringTokenizer("345", List).
List = [3, 4, 5].