检查字符是否为Prolog中的数字?如何实现整数/1



如何在不使用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.

你认为数字是什么?只是整数?十六进制数字?如果您只想识别纯整数([0-9]+),您可以将数字转换为列表,然后检查列表中的每个成员是否为数字:

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

另一个想法是尝试使用is1添加到数字;但这并不能保证它总是整数

相关内容

  • 没有找到相关文章

最新更新