Прочитать ввод в прологе и распечатать результат
Я изучаю идеи Пролога и вот что я хочу практиковать:
Я хочу написать программу Prolog, которая может работать так:
?- input([apple,is,fruit]).
?- input([chicken,is,meat]).
?- input([Is,apple,meat]).
No, it is a fruit
?- input[(Is,chicken,meat])
Yes.
И когда я пытался реализовать эту программу, у меня возникли некоторые проблемы:
(1) Я использовал этот код, пытаясь прочитать входные данные и различить вопросы и утверждения, но он не работает:
input([]).
input([X|R]) :- X is 'Is', write('test code read question'); write("test code read assertion").
(2) Я все еще не понимаю, как я могу отфильтровать полезную информацию из входного сообщения. Например, в[Apple,is,fruit]
входной массив, все что мне нужно этоapple
а такжеfruit
, Как мы обычно делаем, чтобы прыгатьis
слово?
Я не хочу жестко кодировать слишком много вещей в программе и предпочитаю хороший функциональный стиль программирования, чтобы решить проблему, которая может помочь мне извлечь из нее уроки.
Заранее спасибо.