tengo este código en Prolog:Declarar un predicado dinámica en gprolog
dynamic(player_at/1).
player_at(house).
goto(X) :- retract(player_at(house)), assert(player_at(X)).
Pero aún así obtener este error:
uncaught exception: error(permission_error(modify,static_procedure,player_at/1),retract/1)
cuando ejecuto Goto (foo).
He leído el dynamic documentation, pero no sé cómo usarlo, al menos en gprolog. ¿Me estoy perdiendo de algo?
Finalmente usted debe conseguir ya una excepción durante la consulta de su programa. No debería permitir un hecho dinámico (_). La norma ISO solo dice que la dinámica es una directiva, pero en la mayoría de los Prologs también está incorporada, y por lo tanto no puede afirmarse como un hecho. –