In haskell, `[1,2,3,4,5,6,7] \\ [4,5,6]`

will return `[1,2,3,7]`

. Now i want to implement the same function using clisp. Up to now i find `set-difference`

works :

```
(set-difference '(1 2 3 4 5 6 7) '(4 5 6))
```

Are there any other solution ?

Here are relevant bits of haskell library source. Maybe you can translate these definitions directly. I don't think it uses anything specific to Haskell.

(the source is from http://haskell.org/ghc/docs/latest/html/libraries/base/src/Data-List.html)

delete :: (Eq a) => a -> [a] -> [a] delete = deleteBy (==) -- | The 'deleteBy' function behaves like 'delete', but takes a -- user-supplied equality predicate. deleteBy :: (a -> a -> Bool) -> a -> [a] -> [a] deleteBy _ _ [] = [] deleteBy eq x (y:ys) = if x `eq` y then ys else y : deleteBy eq x ys (\\) :: (Eq a) => [a] -> [a] -> [a] (\\) = foldl (flip delete)