On Sep 14, 2011, at 5:29 AM, Kazu Yamamoto (山本和彦) wrote:
> Hello,
>
> Of course, I use ByteString or Text for real programming. But I would
> like to know whether or not there are any efficient methods to remove
> a tail part of a list.
>
> --Kazu
In that case, I would prefer this version, since it is lazier:
lazyChop :: String -> String
lazyChop s = pref ++ if null s' then [] else (mid_sp ++ lazyChop s')
where
(pref,sp_suf) = break isSpace s
(mid_sp,s') = span isSpace sp_suf
By "lazier" I mean:
*Main> chopReverse $ "hello world " ++ undefined
"*** Exception: Prelude.undefined
*Main> chopFoldr $ "hello world " ++ undefined
"*** Exception: Prelude.undefined
*Main> lazyChop $ "hello world " ++ undefined
"hello world*** Exception: Prelude.undefined
Daniel
_______________________________________________
Haskell-Cafe mailing list
[email protected]
http://www.haskell.org/mailman/listinfo/haskell-cafe