Хорошей контрольной точкой для того, что должна делать система Prolog, всегда является GNU Prolog (для некоторых проблем версия 1.3.0 еще лучше).Он очень близок к основному стандарту ISO и не имеет много новинок.Таким образом, вы должны получить кое-что:
GNU Prolog 1.4.4 (64 bits)
Compiled Apr 23 2013, 16:05:07 with cl
?- write('Hello World'), nl.
Hello World
yes
?- write("Hello World"), nl.
[72,101,108,108,111,32,87,111,114,108,100]
Объяснение 1 Одиночные кавычки:
Предикат write / 1 должен записывать атомы без кавычек.Это означает, что атомы, которые обычно нуждаются в кавычках, будут написаны без кавычек.Если вы хотите показать цитаты, вы можете использовать writeq / 1.А атом находится в одинарных кавычках.
Пояснение 2 Двойные кавычки:
Двойные кавычки традиционно использовались для обозначения списков кодов символов, так чтоможно легко определить правила DCG.Многие системы Prolog отвлекаются здесь, и даже основной стандарт ISO позволяет атомам символов вместо кодов.
Но обычно вы можете спросить систему Prolog, что она делает с двойными кавычками, и даже изменить поведение.Просто используйте флаг Prolog double_quotes.Вот что вы можете сделать в GNU-Prolog:
?- current_prolog_flag(double_quotes, X).
X = codes
?- set_prolog_flag(double_quotes, chars).
yes
?- write("Hello World"), nl.
[H,e,l,l,o, ,W,o,r,l,d]