2017-04-16 7 views

답변

3

가장 쉬운 방법은 문법이 처음부터 숯을 얻을 수 있도록하는 것입니다. 이 경우 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은 다른 용어로도 성공합니다.