Prolog でアサートを使用して定義する述語がいくつかあります。
current_predicate/1
アサートが実行されたかどうかを知るために使用しています (1 つの値のみをアサートする必要があります)。
しかし、swipl
不平を言い続けます:
Warning: The predicates below are not defined. If these are defined
Warning: at runtime using assert/1, use :- dynamic Name/Arity.
Warning:
Warning: amountOfStudentsInCourseAsserted/2, which is referenced by
そこで、 を追加したの:- dynamic amountOfStudentsInCourseAsserted/2
ですが、残念ながら、これは述語を current_predicate(Predicate). に追加します。したがってcurrent_predicate/1
、この動的ネーミングを使用していると、もう使用できません。
current_predicate/1
動的な名前には当てはまらない別の述語はありますか?