私は次の簡単なコードを書きました。「男性」と書くと、このコードは「男性ですか?」と尋ねられることを期待しています。「いいえ」と入力すると、画面に「彼女は女性です」と表示されます。
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-prologのエラーは次のとおりです。
ERROR: asserta/1: No permission to modify static_procedure `not/1'