0

私は次のものを持っています:

is_digit(X):-char_type(X,digit).

このように呼び出すと: is_digit(X)。

次の結果が得られます。

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

同じ結果を得る必要がありますが、引用符は必要ありません。簡単な質問で申し訳ありませんが、これを回避する方法を見つけることができませんでした。ありがとう!

4

3 に答える 3

2
?- between(0, 9, X).
X = 0 ;
X = 1 ;
X = 2 ;
X = 3 ;
X = 4 ;
X = 5 ;
X = 6 ;
X = 7 ;
X = 8 ;
X = 9.
于 2011-12-03T23:39:35.763 に答える
1

ISO Prolog実装間で移植可能にしたい場合は、を使用する必要がありますnumber_chars/2atom_number/2SWI、YAP、Ciaoにのみ存在します。しかしnumber_chars/2、それらの3とIF、B、GNU、SICStus、XSB、Jekejekeによってサポートされています。

X = '1', number_chars(N, [X]).
于 2011-12-06T02:32:22.613 に答える
1

数値が必要な場合は、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',
于 2011-12-03T20:57:13.097 に答える