Нотация и структуры данных
660 |
Глава 21. Логическое программирование |
менена двоеточием, за которым следует черточка (или знак «минус») (:-). Таким образом, программа прародителя из предыдущего раздела была бы написана в синтаксисе языка Prolog следующим образом: прародитель (X, Y) :- родитель (X, Z), прародитель (Z, Y). прародитель (X, X). родитель (liza, tom). а пример о числах был бы написан в следующем виде: natural(0). natural(successor(X)) :- natural(X). Обратите внимание, что названия переменных X и Y набраны в верхнем регистре. Prolog отличает переменные от констант и имен предикатов и функций за счет использования верхнего регистра для переменных и нижнего регистра для констант и имен. В некоторых системах Prolog при записи переменной вводят символ подчеркивания перед именем: прародитель (_x, _x)Кроме того, вместо соединителя and используют запятую, а вместо or — точку с запятой. Правда, точка с запятой редко применяется в программировании, так как она не является стандартной частью логики формулы Хорна. Базовой структурой данных являются термы, например родитель (X, Z) или successor(successor(0)). Кроме того, в качестве базовой структуры данных часто применяют список. Список в языке Prolog заключается в квадратные скобки. Если список включает элементы x, у, и z, то это записывается как [x, y, z]. Списки могут содержать термы или переменные. С помощью вертикальной черты можно определить голову и хвост списка. Например, [H|T] означает, что H — первый элемент в списке, а T является хвостом списка. Это тип нотации может использоваться для извлечения компонентов списка через сопоставление с образцом. Таким образом, если [H|T] = [1,2,3], то H = 1 и T = [2,3]. Перед чертой можно написать сколько угодно термов. Например, [X, Y|Z] = [1,2,3] дает X = 1, Y = 2, а Z = [3]. Пустой список обозначается как [] и у него нет первого элемента. В языке Prolog есть несколько стандартных встроенных предикатов, например not, =, а также операции ввода-вывода: read, write и nl (для newline). Одна операция в языке Prolog обозначается необычно: меньше чем или равно записывается как = < вместо Еще по теме Нотация и структуры данных:
-
Windows -
Архитектура компьютера -
Интернет -
Информатика -
Компьютер -
Компьютерные и телекоммуникационные системы -
Программирование -
Социальные сети -
-
Английский язык -
Астрология -
Астрономия -
Биология -
Военная литература -
Журналистика -
Компьютерная инженерия -
Педагогика -
Право -
Психология -
Социология -
Lecture.Center
|