Hi wman, > -- B == Data.ByteString ; L == Data.ByteString.Lazy > contents' = B.intercalate B.empty $ L.toChunks contents > > with a previously unencountered function intercalate. A quick google query > later i knew that it's just intersperse & concat nicely bundled and started > wondering why anybody would do this, as simple > > contents' = B.concat $ L.toChunks contents > > would do (probably nearly) the same. The only thing I am able to come up > with is that it somehow helps streamline the memory usage (if it has some > meaning). > > Is there some reason to use intercalate <empty> <list> instead of concat > <list> (probably when dealing with non-lazy bytestrings) ?
If they do the same thing, no - and I'm pretty sure they are identical. If a much more efficient version of concat was intercalate empty, then the bytestring authors would have just defined: concat = interacalate empty It's best to use the clearest code, always. Performance is something for library authors. (It is sometimes acceptable to use the non clearest code for performance, but it is 100% mandatory to add a comment to that effect!) Thanks Neil _______________________________________________ Haskell-Cafe mailing list [email protected] http://www.haskell.org/mailman/listinfo/haskell-cafe
