Napisałem poniższy prosty kod i spodziewam się, że kiedy piszę "męski", ten kod pyta mnie raz "czy to mężczyzna?" a jeśli wprowadzę "Nie", to napisz na ekranie "ona jest płci żeńskiej".Chcę stworzyć dynamiczne fakty w prologu
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) .
ale ten kod jest następujący błąd:
uncaught exception: error(permission_error(modify,static_procedure,not/1),asserta/1);
błąd w SWI Prolog jest:
ERROR: asserta/1: No permission to modify static_procedure `not/1'
Nie/1 to wstępnie zdefiniowana procedura statyczna. Zastanów się nad zmianą nazwy na coś innego. Również nie wydaje Ci się to właściwe, co robisz. – gusbro