elfs: (Default)
[personal profile] elfs
Sometimes, what I do feels like incantation. I wanted a word count on my "working directory" displays, which I maintain using python scripts. Once upon a time, this would have taken me a few lines. Maybe ten or so. And then I learned Ruby. I learned the difference between a fold, a filter, and a transform. And I learned when to do which.

def wc(f): return Numeric.sum([len(i.split()) for i in open(f, "r") if i])

I don't get paid enough for knowing this stuff.

Date: 2007-03-07 05:36 pm (UTC)
From: [identity profile] elfs.livejournal.com
I used the Numeric module because it was the first one for which I found documentation. If there's a builtin sum, it's not in my Python reference (which is, admittedly, the New Riders book covering version 2.1).

You're right that the count is broken because of the 'if i' chunk. It doesn't do what I intended it to do (remove nulls caused by splits across multiple whitespaces).

And yes, there are generators in python and they completely rock. In fact, I've written Python-to-HTML and Python-to-JSON that silently swallow generators and functors, calling them directly and further interpreting their output. It's damn near DWIM code.

Profile

elfs: (Default)
Elf Sternberg

December 2025

S M T W T F S
 12345 6
78910111213
14151617181920
21222324252627
28293031   

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Jan. 4th, 2026 11:50 am
Powered by Dreamwidth Studios