definisco un operatore come segue:SWI-Prolog - Fail per affermare
:- op(500, xfx, =>).
Quando cerco qualcosa di simile:
assert(a => b).
Prolog genera un errore che dice 'Non hai il permesso di modificare static_procedure (=>)/2' .
Qualsiasi soluzione?
Nit: Sopra la sintassi non valida (provare GNU per vedere questo). Dovrebbe essere '(=>)/2' – false
@false: oh, beh, non avevo nessun interprete disponibile per verificarlo. Grazie, modifico :) – m09
È sempre così: un indicatore di predicato deve avere parentesi se ha una corrispondente definizione di operatore. Quindi è '(;)/2' e' (',')/2'. Le virgolette servono solo a delimitare un token, come "a b" sono necessari indipendentemente dalle dichiarazioni dell'operatore. – false