我正在尝试制作序言功能。该函数读入一个句子,然后尝试提取一个关键词。如果找到关键字,它会打印一条消息。如果没有找到关键字,我希望它也打印一条消息。这是我的例子:
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).
但显然这是错误的做法。