Tôi đã viết mã đơn giản sau đây, và tôi mong rằng khi tôi viết 'nam', mã này hỏi tôi một lần "là nam không?" và nếu tôi nhập 'Không' nó viết trên màn hình "cô ấy là nữ".Tôi muốn tạo các sự kiện động trong 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) .
nhưng mã này đã lỗi sau:
uncaught exception: error(permission_error(modify,static_procedure,not/1),asserta/1);
lỗi trong SWI-Prolog là:
ERROR: asserta/1: No permission to modify static_procedure `not/1'
không/1 là quy trình tĩnh được xác định trước. Xem xét việc đổi tên thành cái gì khác. Ngoài ra nó có vẻ không hoàn toàn đúng những gì bạn đang làm. – gusbro