prolog中是否有字母字符检查?

时间:2009-09-27 08:38:32

标签: character-encoding prolog character swi-prolog

问候,

我是否可以在prolog中使用测试或谓词来验证某个给定字符是否按字母顺序排列?现在,我正在做的是:

非法字符列表:\ n - > 10,空间 - > 32,! - > 33,.-> 46 ,, ...> 44,: - > 58,; - > 59% %63->? ,45 - > - ,34->“,39->%

\+member(Ch,[10, 32, 33, 34, 39, 44, 45, 46, 58, 59, 63 ]), %Checking for line return           (\n),     space, punctuations

这些只是我需要检查的几个字符。进行诸如字母(Ch)之类的测试。会节省我很多时间,最重要的是一种更具防御性的方式。

谢谢

2 个答案:

答案 0 :(得分:3)

is_alpha / 1

还有其他谓词,例如is_lower / 1等。

答案 1 :(得分:2)

在SWI-Prolog中,这是使用char_type/2完成的,例如

% X is either a single-character atom or a character code
alphabetical(X) :- char_type(X, alpha).

SWI-Prolog还提供ctypes库,提供is_alpha等。

:- use_module(library(ctypes)).
alphabetical(X) :- is_alpha(X).