Поиск в списке литературы (пролог) - PullRequest
1 голос
/ 23 апреля 2011

У меня есть код пролога:

libro(autor('Chomsky', 'Noah'),
      titulo('Aspectos de la Teoría de la sintaxis'),
      editorial('Madrid', 'Aguilar'),
      fecha(1970)).

libro(autor('Matthews', 'P'),
      titulo('Inflectional Morphology'),
      editorial('Cambridge', 'Cambridge University Press'),
      fecha(1972)).

libro(autor('Chomsky', 'Noah'),
      titulo('Estructuras sintácticas'),
      editorial('Mexico', 'Siglo XXI'),
      fecha(1974)).

Мне нужно найти все книги, написанные Хомским (в моем случае). Какова процедура их получения?

Спасибо

1 Ответ

3 голосов
/ 23 апреля 2011

Вы просто должны соответствовать шаблону autor('Chomsky',_), как показано ниже:

?- libro(autor('Chomsky',_),T,E,Y).
T = titulo('Aspectos de la Teoría de la sintaxis'),
E = editorial('Madrid', 'Aguilar'),
Y = fecha(1970) ;
T = titulo('Estructuras sintácticas'),
E = editorial('Mexico', 'Siglo XXI'),
Y = fecha(1974).

Вам нужно ввести точку с запятой, чтобы получить следующий результат.

Вы также можете использовать findall, чтобы получить все результаты в виде списка, например:

?- findall(libro(T,E,Y),libro(autor('Chomsky',_),T,E,Y),R).
R = [libro(titulo('Aspectos de la Teoría de la sintaxis'), editorial('Madrid', 'Aguilar'), fecha(1970)), libro(titulo('Estructuras sintácticas'), editorial('Mexico', 'Siglo XXI'), fecha(1974))].
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...