<p>I have a function that gets x(a value) and xs(a list) and removes all values that are bigger than x from the list. Well it doesn't work, can you tell me why?</p>

<pre><code>(defun biggerElems(x xs) 
  (let ((xst))
    (dolist (elem xs)
      (if (&gt; x elem)
          (setf xst (remove elem xs))))
    xst))
</code></pre>

I think it's this line that's not right:
```
```
(setf xst (remove elem xs))))
```
```
The first argument to
```
setf
```
is the place, followed by the value.  It looks like you have it backwards (and
```
xst
```
is either
```
nil
```
or uninitialized).
You might find it easier to do this:
```
```
(defun biggerElems (x xs)
  (remove-if (lambda (item) (> item x)) xs))
```
```