Re: [Haskell-cafe] Faster set intersections?

The following expressions both cause GHCI to hang:
S.intersection (S.fromList [1,2]) (S.fromList [1..]) S.intersection (S.fromList [1..]) (S.fromList [1,2])
Is there a smarter way to take the intersection of sets when at least one of them is small (but I don't know which one that is)?
"Small" is not enough. If all you know is that the lists represent sets of integers, then S.intersection (S.fromList [-1,-2]) (S.fromList [1..]) must diverge. A sufficient condition for success in such examples is that the sets come from a well-ordered domain and are presented in order. Then it's easy to write a merge-like algorithm. Both sets can be infinite; every finite prefix of the intersection will eventually appear. (Note that the integers are not well-ordered, though the positive integers are.) Doug

According to this construction, enumeration will need some SAT enumeration
like process, where you search with a new predicate barring all previous
candidates?
On Mon, 10 Dec, 2018, 08:50 Doug McIlroy,
The following expressions both cause GHCI to hang:
S.intersection (S.fromList [1,2]) (S.fromList [1..]) S.intersection (S.fromList [1..]) (S.fromList [1,2])
Is there a smarter way to take the intersection of sets when at least one of them is small (but I don't know which one that is)?
"Small" is not enough. If all you know is that the lists represent sets of integers, then
S.intersection (S.fromList [-1,-2]) (S.fromList [1..])
must diverge. A sufficient condition for success in such examples is that the sets come from a well-ordered domain and are presented in order. Then it's easy to write a merge-like algorithm. Both sets can be infinite; every finite prefix of the intersection will eventually appear.
(Note that the integers are not well-ordered, though the positive integers are.)
Doug _______________________________________________ Haskell-Cafe mailing list To (un)subscribe, modify options or view archives go to: http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe Only members subscribed via the mailman list are allowed to post.
-- Sending this from my phone, please excuse any typos!
participants (2)
-
Doug McIlroy
-
Siddharth Bhat