2

问候,

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

非法字符列表:\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)之类的测试。会为我节省大量时间,最重要的是这是一种更具防御性的方法。

谢谢

4

2 回答 2

3

is_alpha/1

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

于 2009-09-27T16:07:25.963 回答
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).
于 2012-09-22T12:21:02.423 回答