1
Es auf funktioniert SWI-Prolog 4Definite Clause Grammatiken, Unterschiede zwischen SWI-Prolog 7 und älterem
letter(X) --> [C], {"a"=<C, C=<"z", name(X,[C])}.
Und in SWI-Prolog 7 folgendes arbeiten
:- set_prolog_flag(double_quotes, codes).
letter(X) --> [C], {"a"=<C, C=<"z", name(X,[C])}.
in SWI Suche -Prolog Website, die ich gefunden:
Mode--------------double_quotes-----------back_quotes
Version 7 default-----string------------------codes
--traditional----------codes--------------symbol_char
warum
letter(X) --> [C], {`a`=<C, C=<`z`, name(X,[C])}.
funktioniert nicht?
SWI 7-Kompatibilität mit früheren Versionen zerstört hat. Sie können '--traditional' verwenden, um eine rudimentäre ISO-Konformität zu erhalten. Außerdem empfehle ich 'chars' anstelle von' codes' für * viel * nettere Ausgabe in allen Versionen und auch in anderen Prolog-Systemen. – mat
Ersetzen Sie besser 'name (X, [C])' durch 'char_code (X, C)' - das ist überall besser – false