问候,
我是否可以在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)之类的测试。会节省我很多时间,最重要的是一种更具防御性的方式。
谢谢
答案 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).