我有以下内容:
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)。即
?- char_type(X,digit),atom_number(X,N).
X = '0',
N = 0 ;
X = '1',
N = 1 ;
X = '2',
N = 2 ;
X = '3',
number_chars/2
。
atom_number/2
仅存在于 SWI、YAP、Ciao 中。但是 number_chars/2
得到了这 3 个以及 IF、B、GNU、SICStus、XSB、Jekejeke、Scryer、Trealla、Ichiban、ECLiPSe、Tau、X、Minerva 的支持。
?- X = '1', number_chars(N, [X]).
X = '1', N = 1.