prolog程序,用于检查给定的输入是数字还是大写或小写

prolog程序,用于检查给定的输入是数字还是大写或小写,prolog,swi-prolog,iso-prolog,Prolog,Swi Prolog,Iso Prolog,我在上面的程序中使用了以下逻辑,但它给出了显示=/2的错误:算术:“a/0”不是函数。我应该怎么做来纠正程序 digit(X):- X>=0,X<10,write('input is digit'). uppercase(X):- X>='A',X<'[',write('input is uppercase'). lowercase(X):- X>='a',X<'{',write('input is lowercase'). 数字(X):-X>=0,X='A

我在上面的程序中使用了以下逻辑,但它给出了显示
=/2的错误:算术:“a/0”不是函数。我应该怎么做来纠正程序

digit(X):- X>=0,X<10,write('input is digit').
uppercase(X):- X>='A',X<'[',write('input is uppercase').
lowercase(X):- X>='a',X<'{',write('input is lowercase').

数字(X):-X>=0,X='A',X='A',X如果只想在ISO Prolog中对ASCII字符进行分类,可以通过多种方式进行:

作为长度为1的原子表示的字符。要比较它们,您可以使用通用术语比较
(@>=)/2
(@>)/2
。。。在您的示例中,这将是:

digit_char(X) :- atom_length(X,1), X @>= '0', X @=< '9'.
...
数字字符(X):-atom长度(X,1),X@>='0',X@='9'。
...
作为字符代码,它们是表示排序序列整数的纯整数(听起来不错?它只是ASCII代码)

数字编码(X):-整数(X),X>=0'0,X=<0'9。
...
如果需要在两者之间转换,则有
char\u code/2

对于Unicode,事情还没有普遍可用并达成一致。在SWI中,有和
code\u type/2
。当心,这些东西还在进化

有关字符和代码的详细信息,请参见

如果只想在ISO Prolog中对ASCII字符进行分类,可以通过多种方式进行:

作为长度为1的原子表示的字符。要比较它们,您可以使用通用术语比较
(@>=)/2
(@>)/2
。。。在您的示例中,这将是:

digit_char(X) :- atom_length(X,1), X @>= '0', X @=< '9'.
...
数字字符(X):-atom长度(X,1),X@>='0',X@='9'。
...
作为字符代码,它们是表示排序序列整数的纯整数(听起来不错?它只是ASCII代码)

数字编码(X):-整数(X),X>=0'0,X=<0'9。
...
如果需要在两者之间转换,则有
char\u code/2

对于Unicode,事情还没有普遍可用并达成一致。在SWI中,有和
code\u type/2
。当心,这些东西还在进化

有关字符和代码的详细信息,请参见