На этом шаге мы рассмотрим простые объекты данных.
Простой объект данных - это переменная или константа. Не путайте это значение слова "константа" с символьными константами, которые вы определяете в разделе constants программы. То, что мы здесь называем константой, это нечто, идентифицирующее объект, который нельзя изменять: символ (char), число (integer или real) или атом (symbol или string).
Названия переменных должны начинаться с заглавной буквы (A-Z) или с символа подчеркивания (_). Символ подчеркивания представляет анонимную переменную, которая используется в ситуации "неважно что". В Прологе переменная может связываться с любым допустимым аргументом Пролога или объектом данных.
Переменные Пролога локальны, а не глобальны. Так, если два предложения содержат переменную, названную X, то это две различные переменные. Они могут быть связаны друг с другом, если совпадут во время унификации, но обычно они не оказывают влияния друг на друга.
Константы включают символы, числа и атомы. Опять же, не путайте константы в данном контексте с символьными константами, определенными в разделе constants программы. Значение константы - это ее имя. Так константа 2 может соответствовать только числу 2, а константа abracadabra - только идентификатору abracadabra.
Символы имеют тип char. Печатные символы (ASCII 32-127) - это цифры (0-9), прописные буквы A-Z, строчные буквы a-z, символы пунктуации и специальные символы.
Символ-константа записывается в простых кавычках:
      'a'	'3'
      '*'     '{'
      'W'	'А'
   
Если же вы хотите записать обратную косую черту или простую кавычку, как литерную константу, вы должны
 поставить перед ней символ обратный слэш \ (управляющий escape-символ):
'\\' backslash '\'' single quote.
Существует набор символьных констант, которые представляют специальные функции в том случае, если им предшествует управляющий символ (таблица 1).
| Константа | Описание | 
|---|---|
| ' \n' | Новая строка (перевод строки) | 
| ' \t' | Табуляция (горизонтальная) | 
Символьные константы могут также быть записаны своим десятичным ASCII-кодом после управляющего символа, например:
'\225' В '\134' Ж
Числа могут быть целыми (integer) или вещественными (real). Вещественные имеют значения от 1е-308 до 1е308 (от 10-308 до 10+308). Примеры целых и вещественных чисел приведены в таблице 2.
| Целые | Вещественные | 
|---|---|
| 3 | 3. | 
| -77 | 34.96 | 
| 32034 | -32769 | 
| -10 | 4е27 | 
| 0 | -7.4е-296 | 
Атомы имеют тип идентификатор (symbol) или строка (string). Отличие между ними - главным образом вопрос машинного представления и реализации, и, в основном, оно синтаксически не заметно. Когда атом передается в качестве аргумента при вызове предиката, то к какому домену принадлежит атом - symbol или string - определяется по тому, как описан этот аргумент в декларации предиката.
Пролог автоматически преобразует типы между доменами string и symbol, поэтому вы можете использовать атомы symbol в доменах string и наоборот. Однако принято считать, что объект в двойных кавычках принадлежит домену string, а объект, не нуждающийся в кавычках, домену symbol. Атомы типа symbol - это имена, начинающиеся со строчной буквы и содержащие только буквы, цифры и знак подчеркивания.
Атомы типа string выделяются двойными кавычками и могут содержать любую комбинацию литер, кроме ASCII-нуля (0, бинарный нуль), который обозначает конец строки атома.
Примеры строк и идентификаторов приведены в таблице 3.
| Атомы-идентификаторы | Атомы-строки | 
|---|---|
| food | "Jesse James" | 
| rick_Jones_2nd | "123 Pike street" | 
| fred_Flintstone_1000_Bc_Bedrock | "jon" | 
| a | "a" | 
| new_york | "New York" | 
Так как string/symbol взаимозаменяемы, их отличие не существенно. Однако имена предикатов и функторы для составных объектов должны соответствовать синтаксическим соглашениям домена symbol.
На следующем шаге мы рассмотрим составные объекты данных и функторы.