Parsing 从字符到数字Prolog的解析

Parsing 从字符到数字Prolog的解析,parsing,prolog,iso-prolog,Parsing,Prolog,Iso Prolog,我有以下资料: is_digit(X):-char_type(X,digit). 当我这样称呼它时: 是数字(X) 我得到以下结果: X='0'; X='1'; ... ; X='9' 我需要得到同样的结果,但没有引号。如果这是一个简单的问题,请原谅,但我就是找不到解决这个问题的方法。谢谢 如果您想要数字,请使用原子数(A,N)。i、 e 如果你想要这个数字,使用原子数(A,N)。i、 e 如果您想在ISO Prolog实现中实现可移植性,则需要使用number\u chars/2。

我有以下资料:

is_digit(X):-char_type(X,digit).
当我这样称呼它时: 是数字(X)

我得到以下结果:

X='0'; 
X='1'; 
... ; 
X='9'

我需要得到同样的结果,但没有引号。如果这是一个简单的问题,请原谅,但我就是找不到解决这个问题的方法。谢谢

如果您想要数字,请使用原子数(A,N)。i、 e


如果你想要这个数字,使用原子数(A,N)。i、 e


如果您想在ISO Prolog实现中实现可移植性,则需要使用
number\u chars/2
原子编号/2
仅存在于SWI、YAP、Ciao中。但是
number_chars/2
由这3个和IF、B、GNU、SICStus、XSB、jekeke支持

X = '1', number_chars(N, [X]).

如果您想在ISO Prolog实现中实现可移植性,则需要使用
number\u chars/2
原子编号/2
仅存在于SWI、YAP、Ciao中。但是
number_chars/2
由这3个和IF、B、GNU、SICStus、XSB、jekeke支持

X = '1', number_chars(N, [X]).

?-字符数(2,X)。收益率X=['2']。OP没有太大的改进。相反,2个ISO谓词atom_codes/2和number_codes/2(即atom_number/2)的组合可以提供更好的结果。@chac:OP需要转换十进制数字。至于原子数/2,上述三种系统在几种情况下有所不同。所以最好坚持ISO并坚持一致性。收益率X=['2']。OP没有太大的改进。相反,2个ISO谓词atom_codes/2和number_codes/2(即atom_number/2)的组合可以提供更好的结果。@chac:OP需要转换十进制数字。至于原子数/2,上述三种系统在几种情况下有所不同。所以最好坚持ISO,坚持一致性。
X = '1', number_chars(N, [X]).