Escribí el siguiente código simple, y espero que cuando escribo 'masculino', este código me pregunte una vez "¿es masculino?" y si ingreso 'No' escriba en la pantalla "ella es mujer".Quiero crear hechos dinámicos en prolog
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) .
pero este código ha error siguiente:
uncaught exception: error(permission_error(modify,static_procedure,not/1),asserta/1);
el error en swi-prolog es:
ERROR: asserta/1: No permission to modify static_procedure `not/1'
not/1 es un procedimiento estático predefinido. Considera cambiar el nombre a otra cosa. Además, no parece muy correcto lo que estás haciendo. – gusbro