in reply to Re: (jeffa) Re: Expand Ranges in Lists of Numbers
in thread Expand Ranges in Lists of Numbers

"Sometimes I wish one line blocks for if-else statements didn't require brackets..."

I use to say the same thing until i realized they don't:
print "that's the answer" if $answer == 42; die "that's not your file!" unless -o $file;
A caveat i teach my C++ lab students (i am a graduate teaching assistant at MTSU) is that even though braces are optional for one line blocks, they should get in the habit of using them always. Why? Because 9 times outta 10 you will want to add a second line in the near future. Murphy's law or something ... ;)

jeffa

L-LL-L--L-LL-L--L-LL-L--
-R--R-RR-R--R-RR-R--R-RR
B--B--B--B--B--B--B--B--
H---H---H---H---H---H---
(the triplet paradiddle with high-hat)

Replies are listed 'Best First'.
Re: (jeffa) 3Re: Expand Ranges in Lists of Numbers
by The Mad Hatter (Priest) on Jun 09, 2003 at 02:37 UTC
    print "that's the answer" if $answer == 42;
    Yeah, but there is no "elegant" way to do this
    if ($answer == 42) print "that's the answer"; else print "you're a jerk. a complete kneebiter.";
    You'd have to do something like
    print "that's the answer" if $answer == 42; print "you're a jerk. a complete kneebiter." unless $answer == 42;
    9 times outta 10 you will want to add a second line in the near future.
    Heh. I bet at first they ignore your advice. Then they keep on having to add braces and they realize that you're right. ; )
      And that is where you use the ternary op:
      print( $answer == 42 ? "that's the answer" : "that is the answer" );
      The students who have to take Comp Sci One (i teach administer the lab portion, BTW) are usually either Computer Science, Math, Engineering, or Industrial Studies majors. Rarely do the Math majors enjoy C++ ... we GTA's just do whatever we can do get them through the class. Watching them puzzle over differentiating between assignment and equality can be amusing, especially the first time they encounter i = i + 1. The Engineering and IS majors tend to appreciate the course a bit more than the Math majors ... anyone with a different major probably took the course by mistake or because they didn't know any better - but there are a few "rogues" who know what they are doing. Those students and the CS majors are the ones that i focus mainly on - anyone who will be taking more CS courses. Everyone else is just taking the course to fullfill prerequisits, and won't be pursuing programming probably ever again. In other words, about 90% of the class ignores my advice. ;)

      jeffa

      L-LL-L--L-LL-L--L-LL-L--
      -R--R-RR-R--R-RR-R--R-RR
      B--B--B--B--B--B--B--B--
      H---H---H---H---H---H---
      (the triplet paradiddle with high-hat)
      
        And that is where you use the ternary op
        Yeah, I know, but it still isn't quite the same. (Don't mind me, I like to nitpick little stuff; I'm odd like that. :)
        In other words, about 90% of the class ignores my advice. ;)
        Heh. I imagine it can be fun at times. ; )