resultList(UsersQuery):-
question(X,H),
write(H),
myintersection(H,UsersQuery,Match,TotalQuestionKeywords),
Percent is Match/TotalQuestionKeywords*100,
write('Question: '),
write(X),nl,write('Quality: '), write(Percent),write('%'),nl,
/* please look at this part
Percent>=50,
assert(listofQuestions(Percent,Question)),
write(Percent),write(Question),nl,
fail.
resultList(_).
'listofQuestions'という名前のファクトデータベースを作成したいと思います。すべてうまく動作しますが、私が主張しているものはメモリにとどまります。だから、プログラムをもう一度動かすと、同じリストの事実が 'listofQuestions'に追加されます。Prolog - 一度だけデータベースをアサート/作成する方法
私はただ1セットのデータを持ちたいと思っています。あなたがプログラムを再実行する前に
ありがとう
をされたif-then-else組み込みの述語 '(listofQuestions(P、Q)を使用してみてください - >真を、主張(listofQuestions(P、Q))) ' –
はうまく動作します。しかし、私が望むのは、私のルールを呼び出すたびに、新鮮な空白の "listofQuestions"です。プロローグを再起動した場合にのみ発生します。どんな助け? – HungryCoder