Учебное пособие: Язык логического программирования Visual Prolog
alphabet_position(' z1, 26).
Вы можете объявить данный предикат следующим образом:
predicates
alphabet_position(char, unsigned)
и тогда вам не будет нужен раздел domains. Если разместить все фрагменты программы вместе, получим:
predicates
alphabet_position(char, integer)
clauses
alphabet_position('a', 1).
alphabet_position('b', 2) .
alphabet_position('c', 3).
% здесь находятся остальные буквы
alphabet_position('z', 26).
Ниже представлено несколько простых целей, которые вы можете использовать:
alphabet_position ('а', 1).
alphabet_position(X, 3).
alphabet_position (' z', What).
Арность (размерность)
Арность предиката — это количество аргументов, которые он принимает. Вы можете иметь два предиката с одним и тем же именем, но отличающейся арностью. В разделах predicates и clauses версии предикатов с одним именем и разной арностью должны собираться вместе; за исключением этого ограничения, различная арность всегда понимается как полное различие предикатов. Проиллюстрируемэтопримером/
domains
person = symbol
predicates
father(person)% этот person — отец
father(person, person)% первый person является отцом другого
clauses
father (Man) :-father(Man, _) .
father(adam,seth).
father(abraham,isaac).
Синтаксис правил
Правила используются в Прологе в случае, когда какой-либо факт зависит от истинности другого факта или группы фактов. Как мы объясняли ранее в этой главе, в правиле Пролога есть две части: заголовок и тело. Ниже представлен обобщенный синтаксис правила в VisualProlog:
HEAD: - <Subgoal>, <Subgoal>, ..., <Subgoal>.