Day 4 – Iterators.
First, all chapters in programming books should start with quotes from Steve Martin (t).
Second, what’s a language without a convoluted loop syntax to geek out on? Geeez. I thought the purpose of learning to program was the same as learning Arabic from the Defense Language Institute – “because you can’t.” Ruby has iterators for logical, readable code? This means I might actually get something built rather than just debugging loops.
I’ve mentioned before how much I enjoy Slagell’s writing. I also like how the solutions to the exercises are listed immediately after the exercises. This isn’t typical, at in my collection of programming books. It makes getting un-stuck and getting the point much quicker.
Tip: Here’s how I’m remembering how the ‘step’ iterator works:
start.step(to, by)
an example to display all the odd numbers from 5 to -15
5.step(-15, -2)
Quite a few years back I was talking with a programmer/designer (in contrast to my designer/programmer) who didn’t like AppleScript because it was “too much like English”. With syntax like:
-
3.times
to do something, well, 3 times and -
10.downto(1)
to count down from 10 to 1
I don’t think he’d like Ruby for the exact same reason – if not more so.
This post documents my journey through Sam’s Teach Yourself Ruby in 21 days. I’ll be joining Al Abut in his effort to learn Ruby and blog along the way.
Regarding step:
(from .. to).step(by) is easier to remember IMHO.
flgr,
so you’re saying
(5..-15).step(-2)
is a synonym for
5.step(-15, -2)
If so, I agree, it is easier to remember.