Haskell's expressiveness really shines here, doesn't it! Robby
At Thu, 29 Jun 2006 11:43:02 -0700, "Chad Scherrer" wrote: > No. I suppose "man wc" would have helped, but this has been entertaining, > anyway. > Times for lc and wc -l seem comparable over a couple of runs. So in any > case, it's encouraging that it's so easy to reach speeds comparable to > (presumably) highly-tuned C code like this. > > -Chad > > On 6/29/06, Robby Findler <[EMAIL PROTECTED]> wrote: > > > > Just out of curiosity, did you try "wc -l"? > > > > Robby > > > > On Jun 29, 2006, at 1:18 PM, Chad Scherrer wrote: > > > > > I have a bunch of data files where each line represents a data > > > point. It's nice to be able to quickly tell how many data points I > > > have. I had been using wc, like this: > > > > > > % cat *.txt | /usr/bin/time wc > > > 2350570 4701140 49149973 > > > 5.81user 0.03system 0:06.08elapsed 95%CPU (0avgtext+0avgdata > > > 0maxresident)k > > > 0inputs+0outputs (152major+18minor)pagefaults 0swaps > > > > > > I only really care about the line count and the time it takes. For > > > larger data sets, I was getting tired of waiting for wc, and I > > > wondered whether ByteString.Lazy could help me do better. So I > > > wrote a 2-liner: > > > > > > import qualified Data.ByteString.Lazy.Char8 as L > > > main = L.getContents >>= print . L.count '\n' > > > > > > ... and compiled this as "lc". It doesn't get much simpler than > > > that. How does it perform? > > > > > > % cat *.txt | /usr/bin/time lc > > > 2350570 > > > 0.09user 0.13system 0:00.24elapsed 89%CPU (0avgtext+0avgdata > > > 0maxresident)k > > > 0inputs+0outputs (199major+211minor)pagefaults 0swaps > > > > > > Wow. 64 times as fast for this run, with almost no effort on my > > > part. Granted, wc is doing more work, but the number of words and > > > characters aren't interesting to me in this case, anyway. I can't > > > imagine (implementation time)*(execution time) being much shorter. > > > Thanks, Don! > > > > > > -- > > > > > > Chad Scherrer > > > > > > "Time flies like an arrow; fruit flies like a banana" -- Groucho Marx > > > _______________________________________________ > > > Haskell mailing list > > > [email protected] > > > http://www.haskell.org/mailman/listinfo/haskell > > > > > > > -- > > Chad Scherrer > > "Time flies like an arrow; fruit flies like a banana" -- Groucho Marx _______________________________________________ Haskell mailing list [email protected] http://www.haskell.org/mailman/listinfo/haskell
