(defun factorial(n)
 (if (= n 0)1
     (* n (factorial(- n 1)))
 )
)  

(defun quicksort(lista)
 (if (null lista)()
     (let* ((piv (first lista))
     (listas(divide piv (rest lista))))
        
  (append   (quicksort(first listas))
            (list piv) 
            (quicksort(second listas))
  )
)
)
)


(defun divide (piv lista)
  (if (null lista)
      '(()())
      (let ((listamen ())
            (listamay ())
           )
        (dolist(x lista(list listamen listamay))
         (if (< piv x)
                (setf listamay (cons x listamay))
            (setf listamen (cons x listamen))
)
)
)
)
) 
