(defun selectsort(lista)
  (if (null lista) ()
     (let ((x (menor lista)))
          (cons (first x) (selectsort (second x)))
     )
  )
)

(defun menor(lista)
   (if (null lista) '(() ())  
       (if (< (first lista) (min (rest lista)))
              (cons (first lista) (rest lista))
              (cons (min (rest lista)) (cons (first lista) (menos ((min (rest lista)) (rest lista))))
       )
)
)
)

(defun menos (m lista)
   (if (null lista) nil
       (if (= m (first lista)) (rest lista)
                               (cons (first lista) (menos (m (rest lista))))
                               )
       )
)
