我有以下内容:
is_digit(X):-char_type(X,digit).
当我这样称呼它时:is_digit(X)。
我得到以下结果:
X='0';
X='1';
... ;
X='9'
我需要得到相同的结果,但没有引号。对不起,如果这是一个简单的问题,但我一直无法找到解决这个问题的方法。谢谢!
我有以下内容:
is_digit(X):-char_type(X,digit).
当我这样称呼它时:is_digit(X)。
我得到以下结果:
X='0';
X='1';
... ;
X='9'
我需要得到相同的结果,但没有引号。对不起,如果这是一个简单的问题,但我一直无法找到解决这个问题的方法。谢谢!
?- between(0, 9, X).
X = 0 ;
X = 1 ;
X = 2 ;
X = 3 ;
X = 4 ;
X = 5 ;
X = 6 ;
X = 7 ;
X = 8 ;
X = 9.
如果您想要数字,请使用 atom_number(A,N)。IE
?- char_type(X,digit),atom_number(X,N).
X = '0',
N = 0 ;
X = '1',
N = 1 ;
X = '2',
N = 2 ;
X = '3',
如果你想在 ISO Prolog 实现之间移植,你需要使用number_chars/2
.
atom_number/2
仅存在于 SWI、YAP、Ciao。但是number_chars/2
被那些 3 和 IF、B、GNU、SICStus、XSB、Jekejeke 支持。
X = '1', number_chars(N, [X]).