title: Prolog retract doesn't change database
body: <h2>#Retract doesn't change the database#</h2>
  
  <p>Hi i have a database in Prolog consisting of simple facts:</p>
  
  <pre><code>:-dynamic sportsmen/2.
  sportsmen('Andrew', 'Shaw').
  sportsmen('Patrick', 'Kane').
  </code></pre>
  
  <p>Now i want to retract some facts from it. Problem is, when i call 
    <code>retract(sportsmen(_,'Kane'))</code>
  it returns true, but there is no change in my database, i tried to find a solution here and i found some guy that has this problem a was adviced to look at predicate tell/1. I know what this predicate is doing but i cant figure out how can i write back to database all the remaining facts excepts of the one i want to delete.</p>
  
  <p><em>Can anyone help</em>?</p>