2

integer/1(HW)を使用せずに Prolog で文字が数字であるかどうかを確認するにはどうすればよいですか?

を使用できますatomic/1が、 true も返すため、あまり役に立ちません。

数字以外のものに。

2 ?- atomic(1).
true.

3 ?- atomic(asasa).
true.

4 ?- 

よろしく

4

2 に答える 2

3

使用するchar_type(X,digit).

?- char_type('3',digit).
true.

?- char_type('a',digit).
false.
于 2013-01-20T12:43:18.210 に答える
1

さて、あなたは数を何と考えますか?整数だけ?16進数?単純な整数 ( ) だけを認識したい場合は[0-9]+、数値をリストに変換してから、リストの各メンバーが数字であるかどうかを確認できます。

is_digit(1).
is_digit(2).
....

別のアイデアは1、を使用して数値に追加しようとしていisます。ただし、これは常に整数であることを保証するわけではありません。

于 2013-01-20T12:51:07.787 に答える