title: Declaring a predicate dynamic in gprolog
body: <p>I have this code in Prolog:</p>
  
  <pre><code>dynamic(player_at/1).
  player_at(house).
  goto(X) :- retract(player_at(house)), assert(player_at(X)).
  </code></pre>
  
  <p>But I still get this error:</p>
  
  <pre><code>uncaught exception: error(permission_error(modify,static_procedure,player_at/1),retract/1)
  </code></pre>
  
  <p>when I execute goto(foo).</p>
  
  <p>I've read the <a href="http://contraintes.inria.fr/~haemmerl/gprolog-rh/doc/manual021.html#htoc47" rel="noreferrer">dynamic documentation</a>, but I can't figure out how to use it, at least in gprolog. Am I missing something?</p>