LISP provides two primitives for sorting: `sort`

and `stable-sort`

.

```
```> (sort '(2 1 5 4 6) #'<)
(1 2 4 5 6)
> (sort '(2 1 5 4 6) #'>)
(6 5 4 2 1)

The first argument to `sort`

is a list; the second is a comparison
function. The `sort`

function does not guarantee stability: if there are
two elements `a`

and `b`

such that ```
(and (not (< a b)) (not
(< b a)))
```

, sort
may arrange them in either order. The `stable-sort`

function is exactly
like `sort`

, except that it guarantees that two equivalent elements
appear in the sorted list in the same order that they appeared in the
original list.

Be careful: `sort`

is allowed to destroy its argument, so if the original
sequence is important to you, make a copy with the `copy-list`

or
`copy`

-seq/ function.