http://qs321.pair.com?node_id=144164


in reply to New golf game (for the extremely bored)

Two solutions of 38 characters:
# 1 2 3 #2345678901234567890123456789012345678 perl -le'print+(H,T)[rand 2]for a..gr' perl -le'print 1<rand 2?H:T for a..gr'

Replies are listed 'Best First'.
Re: Re: New golf game (for the extremely bored)
by redsquirrel (Hermit) on Feb 08, 2002 at 18:06 UTC
    Using your second example, you can take the score down to 37 like this:

    perl -le'print+rand>.5?H:T for a..gr'

    --Dave

Re: Re: New golf game (for the extremely bored)
by Cody Pendant (Prior) on Feb 09, 2002 at 11:02 UTC
    Can someone explain that "a..gr" thing to me please?

    I'm baffled.
    --

    ($_='
      jjjjjjuuuuuuuuusssssssssttttttttt annnnnnoootttttthhhhheeeeeerrrrrr
      pppeeeerrrrrrrrrrrrllllllllllllll haaaaccccccckkkkkkkeeeeeeeerrrrrr')
                   =~y/[a-z]//s;print;
      >Can someone explain that "a..gr" thing to me please?

      Same as 1..200, really ;)

      Basically you just use letters instead of numbers.

      a..z yields the 26 characters of the alphabet,
      a..az yields those and another 26 prefixed with a
      a..bz yields those and another 26 prefixed with b
      and so on. Same system, more "numbers" ...

      Incidentally a..gr yields 7*26 + 18 "numbers".

      update : as crazyinsomniac pointed out, the range-operator is discussed in more detail in perlman:perlop.