title: Is it possible to reverse a list with only two arguments?
body: <p>Is it possible to reverse a list in Prolog with only two arguments? Such as:</p>
  
  <pre><code>reverse_list(List, Reversed).
  </code></pre>
  
  <p>This is not homework, I'm reading Seven Programming Languages in Seven Weeks and I got curious.</p>
  
  <p>With three arguments you could use an accumulator (much like in functional programming):</p>
  
  <pre><code>reverseList([], Accumulator, Accumulator).
  reverseList([Head|Tail], Accumulator, Solution) :-
    reverseList(Tail, [Head|Accumulator], Solution).
  reverseList(List, Solution) :-
    reverseList(List, [], Solution).
  </code></pre>
  
  <p><strong>Clarification</strong>: I saw a solution with append, I was wondering if you could do that without other prolog functions</p>