title: Filter a list into two parts by a predicate
body: <p>I want to do</p>
  
  <pre><code>(filter-list-into-two-parts #'evenp '(1 2 3 4 5))
  ; =&gt; ((2 4) (1 3 5))
  </code></pre>
  
  <p>where a list is split into two sub-lists depending on whether a predicate evaluates to true. It is easy to define such a function:</p>
  
  <pre><code>(defun filter-list-into-two-parts (predicate list)
    (list (remove-if-not predicate list) (remove-if predicate list)))
  </code></pre>
  
  <p>but I would like to know if there is a built-in function in Lisp that can do this, or perhaps a better way of writing this function?</p>