
On Sat, 26 Jul 2014 21:39:01 +0200, Niklas Hambüchen
Hi,
I just noticed that
import Data.List [] \\ [1..]
diverges, although technically it doesn't have to (the docs suggest to me that it could just be [], and a non-diverging implementation is possible).
Same for [1,2] \\ [1..] of course.
You can define (\\) as follows, terminating in case of the samples you gave: (\\) :: (Eq a) => [a] -> [a] -> [a] (\\) [] _ = [] (\\) _ [] = [] (\\) xs (y : ys) = delete y xs \\ ys but this will not terminate in cases like: [0] \\ [1..] I don't think there is a way to get this terminating for all cases. Regards, Henk-Jan van Tuyl -- Folding@home What if you could share your unused computer power to help find a cure? In just 5 minutes you can join the world's biggest networked computer and get us closer sooner. Watch the video. http://folding.stanford.edu/ http://Van.Tuyl.eu/ http://members.chello.nl/hjgtuyl/tourdemonad.html Haskell programming --