Tue, 18 Jan 2000 18:45:52 +0300 (MSK), S.D.Mechveliani <[EMAIL PROTECTED]> pisze:

> But "filter-filter" implementation needs a constant space for
> 
>                     head $ fst $ partition (==1) [0..n].
> 
> And some recent implementations take  heap+stack  proportional to  n.

partition _ []     = ([],  [])
partition p (x:xs) = if p x then (x:ys, zs) else (ys, x:zs)
    where (ys, zs) = partition p xs

runs your example in constant space.

-- 
 __("<    Marcin Kowalczyk * [EMAIL PROTECTED] http://qrczak.ids.net.pl/
 \__/              GCS/M d- s+:-- a22 C+++$ UL++>++++$ P+++ L++>++++$ E-
  ^^                  W++ N+++ o? K? w(---) O? M- V? PS-- PE++ Y? PGP+ t
QRCZAK                  5? X- R tv-- b+>++ DI D- G+ e>++++ h! r--%>++ y-

Reply via email to