[Haskell-cafe] [] \\ [1..] diverges - intended?
Henk-Jan van Tuyl
hjgtuyl at chello.nl
Sat Jul 26 20:55:05 UTC 2014
On Sat, 26 Jul 2014 21:39:01 +0200, Niklas Hambüchen <mail at nh2.me> wrote:
> 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 at 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
--
More information about the Haskell-Cafe
mailing list