私は次の簡単なコードを書いています。私は '男性'と書くと、このコードは「男性ですか? 「いいえ」と入力すると、「彼女は女性です」という画面に書き込まれます。私はプロローグで動的な事実を作成したい
male :- (print('is it male ? '),read(yes)) -> true; asserta(not(male)),female.
female:- not(male),print('she is female').
not(P) :- (call(P) -> fail ; true) .
しかし、このコードは、次したエラー:
uncaught exception: error(permission_error(modify,static_procedure,not/1),asserta/1);
SWI-プロローグにエラーがある:
ERROR: asserta/1: No permission to modify static_procedure `not/1'
not/1はあらかじめ定義された静的プロシージャです。名前を別のものに変更することを検討してください。また、あなたがしていることはまったく正しいとは思われません。 – gusbro