integer/1
(HW)を使用せずに Prolog で文字が数字であるかどうかを確認するにはどうすればよいですか?
を使用できますatomic/1
が、 true も返すため、あまり役に立ちません。
数字以外のものに。
2 ?- atomic(1).
true.
3 ?- atomic(asasa).
true.
4 ?-
よろしく
使用するchar_type(X,digit).
?- char_type('3',digit).
true.
?- char_type('a',digit).
false.
さて、あなたは数を何と考えますか?整数だけ?16進数?単純な整数 ( ) だけを認識したい場合は[0-9]+
、数値をリストに変換してから、リストの各メンバーが数字であるかどうかを確認できます。
is_digit(1).
is_digit(2).
....
別のアイデアは1
、を使用して数値に追加しようとしていis
ます。ただし、これは常に整数であることを保証するわけではありません。