title: Prolog recursion overflow
body: <pre><code>fact(1,1):-!.
  fact(N,F):-
      N1=N-1,
      fact(N1,F1),
      F=F1*N.
  </code></pre>
  
  <p>It leads to the stackoverflow(not the site)! It shouldn't because of the cut(!). Does it work in SWI-Prolog?</p>