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 に答える