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].
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д