David Brady wrote: > Hi all, > > One of the coolest things for me about learning ruby is that it's the > first language I've learned in a decade where I actually had to learn > a new language. Once you know C/C++, you can pick up Java, PHP, perl, > Python, and even VB without really having to learn new grammar... you > just learn where the braces and dollar signs go. One of the joys of > ruby is that when I find myself using a klunky grammar construct, > there is often an elegant solution if I will just surrender my C++ > thinking style. > > That paragraph could spark a thread of its own, but in this case, its > lead-up for a simpler question. Which do you find more readable: > > # this version > if !correct > handle_error > do_some_other_thing > end > > # or this version > unless correct > handle_error > do_some_other_thing > end > > When dealing with single-lines, I find the inverted construct to be > MUCH more readable: > > handle_error unless correct > > but when I have to make a block, my C++ instincts really prefer the > "if !" version. > > I'm just throwing this out here... what do you prefer, and why? Do > you find the "unless x" construct as (or more) readable than the "if > !x" construct? <snip> > > > -dB > Personally, I've been going with the 'unless' statement much more often, but it depends on the context. I generally use "unless" when I think the conditional is unusual and I normally would do what's in the block: unless something_is_weird do stuff end But that's just because I'm thinking about the normal meaning of 'unless'. I also use the 'word' versions of logical operators to make things more clear for myself: if not correct #do something end is very easy to follow. Just beware of the lower precedence of those constructs. This could be just me, though. -Justin