Ich will erstellen Sie dynamische Fakten in prolog

Schrieb ich folgenden einfachen code, und ich erwarte, dass, wenn ich Schreibe " Mann.', dieser code bitten, mir einmal: "ist es Männlich?" und wenn ich input 'Nein', Sie schreiben auf dem Bildschirm "Sie eine Frau ist".

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) .

aber dieser code hat folgenden Fehler:

uncaught exception: error(permission_error(modify,static_procedure,not/1),asserta/1);

den Fehler in swi-prolog :

ERROR: asserta/1: No permission to modify static_procedure `not/1'
  • nicht/1 ist eine vordefinierte statische Verfahren. Ändern Sie den Namen in etwas anderes. Auch scheint es nicht ganz richtig, was Sie tun.
InformationsquelleAutor vakarami | 2011-12-29
Schreibe einen Kommentar