Я хочу создать динамические факты в прологе

Я написал следующий простой код и ожидаю, что когда я напишу 'мужчина.', этот код спросит меня один раз: «это мужчина?» и если я ввожу «Нет», на экране будет написано «она женщина».

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'
6
задан false 2 February 2014 в 23:15
поделиться