title: Converting a list into a term in Prolog
body: <p>What is the best way of converting a Prolog list into a Prolog term (that is not a list), in terms of
  efficiency, and using existing built-in predicates as much as possible?</p>
  
  <p>The interface and usage examples would be the following.</p>
  
  <pre><code>%% list_to_term(+List:list, +Functor:atom, -Term:term)
  %
  % Usage:
  %
  % ?- list_to_term([], myfunctor, Term).
  % Term = myfunctor.
  %
  % ?- list_to_term([a, b, [c], D, 2], myfunctor, Term).
  % Term = myfunctor(a, b, [c], D, 2).
  </code></pre>
  
  <p>I.e. the given list (which is actually a nested term) is flattened into
  a term with the given name.</p>
  
  <p>I'm not saying that it makes sense to do this. (But if you think that it does, please provide a usecase in your answer.)</p>