Czytaj dane wejściowe w prologu i wyniki drukowania
Uczę się pomysłów Prolog i oto co chcę ćwiczyć:
Chcę napisać program Prolog, który może działać tak:
?- input([apple,is,fruit]).
?- input([chicken,is,meat]).
?- input([Is,apple,meat]).
No, it is a fruit
?- input[(Is,chicken,meat])
Yes.
A kiedy próbowałem wdrożyć ten program, miałem pewien problem:
(1) Użyłem tego kodu, próbując odczytać dane wejściowe i rozróżnić pytania i twierdzenia, ale to się nie udaje:
input([]).
input([X|R]) :- X is 'Is', write('test code read question'); write("test code read assertion").
(2) Nadal jestem zdezorientowany, jak mogę filtrować użyteczne informacje z komunikatu wejściowego. Na przykład w[Apple,is,fruit]
tablica wejściowa, wszystko czego potrzebujęapple
ifruit
. Jak zwykle robimy, aby przeskoczyćis
słowo?
Nie chcę kodować zbyt wielu rzeczy do programu i wolę dobry styl programowania funkcjonalnego, aby rozwiązać problem, który może pomóc mi się uczyć.
Z góry dziękuję.