2
나에게 좋을 것 같지만, 항상 거짓을 준다. 나는 그 이유를 알 수 없다.Definite Clause 문법, 문자열이 char인지 확인하는 방법?
letter(X) --> [C], {"a"=<C, C=<"z", name(X,[C])}.
감사합니다.
나에게 좋을 것 같지만, 항상 거짓을 준다. 나는 그 이유를 알 수 없다.Definite Clause 문법, 문자열이 char인지 확인하는 방법?
letter(X) --> [C], {"a"=<C, C=<"z", name(X,[C])}.
감사합니다.
가장 쉬운 방법은 문법이 처음부터 숯을 얻을 수 있도록하는 것입니다. 이 경우 name/2
(또는 char_code/2
)을 변환 할 필요가 없습니다.
:- set_prolog_flag(double_quotes, chars).
letter(C) --> [C], { atom_length(C,1), a @=< C, C @=< z }.
이것은 모든 시스템에서 작동합니다. SWI에서, 또한 char_type/2
있다 :
letter(C) --> [C], { atom_length(C,1), char_type(C, lower) }.
이
이 움라우트 같은 A..Z에서 떨어져 또한 더 소문자를 받아 들일 것입니다.목표가 문자 만있는 것을 보장하는 목표 atom_length(C,1)
에 유의하십시오. 그렇지 않은 경우 letter//1
은 다른 용어로도 성공합니다.