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

bad style because the ternery operator is being used in void context.
I know, I'm guilty. I have a tendency to use the ternary operator like that quite often and I've been trying to kick the habit, but the habit keeps kicking back (so to speak). Anyway, I'll change it in the code.

Sometimes I wish one line blocks for if-else statements didn't require brackets, like C's. Oh well.

I like the changes, by the way. Now we have a fully flogged dead horse. :D
Thanks, I like the funky reverse abbreviated ranges. I always liked beating things that couldn't fight back... ; )
  • Comment on Re: (jeffa) Re: Expand Ranges in Lists of Numbers

Replies are listed 'Best First'.
(jeffa) 3Re: Expand Ranges in Lists of Numbers
by jeffa (Bishop) on Jun 09, 2003 at 02:28 UTC

    "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)
    
      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)