2012-01-18 2 views
0

Скажем, у меня был тот факт, такие как:Пролог - Нужна информация о фактах

bigger(cat,mouse). 

Если бы я хотел, чтобы описать это кому-то, я был бы прав, говоря, «кошка первый член в этом факте и мыши является вторым термином ", или я бы назвал бы кошку и мышь атомами и сказал, что« кошка является первым атомом в этом факте, а мышь является второй ».

ответ

1

Вашего первое описание справедливо, будучи «термин» рекурсивная структура данных: то есть термин либо атом, число, или структура, где struct is 'name (arg1, arg2, ...)', и каждый аргумент является термином.

Итак, ваше второе описание более точное (ограниченное).

В качестве других отмеченных ответов «аргумент» это обычное обозначение позиционно идентифицированных атрибутов в структурированных терминах.

0

аргумент был бы идеальным словом, я думаю. Но, как правило, чтобы описать предикат вы будете использовать следующую форму:

predicate/arity : predicate(arguments...) 
description of arguments 

Здесь было бы пойти что-то вроде:

bigger/2 : bigger(Bigger, Lesser) 
Holds if Bigger is bigger than Lesser. 

Кроме того, вы могли бы точный режим аргументов: + для ввода, - для вывода,? для обоих (и @ для чистого ввода), обратитесь к ответу @ false на this question, чтобы получить дополнительную информацию о режимах, если необходимо.

Здесь полная версия может быть:

bigger/2 : bigger(?Bigger, ?Lesser) 
Holds if Bigger is bigger than Lesser. 
0

Чтобы смешать вещи немного, я могу сказать, что bigger является бинарным отношением, которое держится между cat и mouse.

 Смежные вопросы

  • Нет связанных вопросов^_^