DCG в SWI-Prolog-е

Узнай цену своей работы

Формулировка задачи:

Есть простенький рабочий код:
Вопрос обрабатывает корректно. Пытаюсь его изменить для другого вопроса - не работает. В чём дело?

Решение задачи: «DCG в SWI-Prolog-е»

textual
Листинг программы
% top([did, mark, hamill, play, spock]).
 
top(Sentence) :-
  yesno(Query, Sentence, []),
  Query,
  write("Yes, that's true").
 
yesno(Sem) --> [did], statement(_^_^[Sem]).
 
statement(Subj^Obj^Sem) -->
    noun_phrase(Subj),
    verb_phrase(Subj^Obj^Sem).
 
noun_phrase(Sem) --> proper_noun(Sem).
 
verb_phrase(Subj^Obj^Sem) -->
   verb(Subj^Obj^Sem),
   noun_phrase(Obj).
 
verb(X^Y^[playing(X,Y)]) --> [play].
 
playing(mark_hamill,spock).
proper_noun(mark_hamill) --> [mark, hamill].
proper_noun(spock) --> [spock].

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

9   голосов , оценка 4.111 из 5