Hi, 

I've encountered a bug of partition in Data.List shipped with
ghc-6.2 and hugs(Nov 2002)
It cannot work with an infinite list.

Example:
        > partition (==0) (cycle [0,1])
        does not return and so
        not conform to the specification in the Haskell 98 and the library document.  

I found some discussion on this bug in the haskell mailing-list archive,
e.g. http://www.mail-archive.com/[EMAIL PROTECTED]/msg07789.html

Is there some good reason not to change this behaviour?
(And if it is, I think that the library document should be fixed.)

Patch:
--- List.hs.orig        Thu Feb  5 04:15:59 2004
+++ List.hs     Thu Feb  5 04:16:31 2004
@@ -240,8 +240,8 @@
 {-# INLINE partition #-}
 partition p xs = foldr (select p) ([],[]) xs

-select p x (ts,fs) | p x       = (x:ts,fs)
-                   | otherwise = (ts, x:fs)
+select p x ~(ts,fs) | p x       = (x:ts,fs)
+                    | otherwise = (ts, x:fs)

 -- @mapAccumL@ behaves like a combination
 -- of  @map@ and @foldl@;

---
Koji Nakahara
_______________________________________________
Haskell mailing list
[EMAIL PROTECTED]
http://www.haskell.org/mailman/listinfo/haskell

Reply via email to