プロローグ機能を作ろうとしています。関数は文を読み取り、キーワードの抽出を試みます。キーワードが見つかった場合は、メッセージを出力します。キーワードが見つからない場合にもメッセージを出力したい。これが私の例です:
contains([word1|_]) :- write('word1 contained').
contains([Head|Tail]) :- Head \= word1, contains(Tail).
contains([word2|_]) :- write('word2 contained').
contains([Head|Tail]) :- Head \= word2, contains(Tail).
contains([word3|_]) :- write('word3 contained').
contains([Head|Tail]) :- Head \= word3, contains(Tail).
上記のコードは、抽出された単語が存在するかどうかを確認します。ただし、単語 'word1,word2 または word3' が含まれていない場合は、答えになりません。これを実装する方法を知っている人はいますか?
追加してみました:
contains([_|_]) :- write('nothing contained'),nl.
contains([Head|Tail]) :- Head \= _, contains(Tail).
しかし、これが間違っていることは明らかです。