[Purdue-pm] More on Mark's challenge

Michael Gribskov gribskov at purdue.edu
Thu Jan 14 11:41:16 PST 2010


i have a very ugly one statement solution using marks first approach, 
which doesn't use etc, etc.

Mark Senn wrote:
>   On Wed, 13 Jan 2010 09:13:21 -0500 Rick Westerman wrote:
>   > I had a question today as to if is required to use the 'hereis' text
>   > Mark put in his original challenge email.  My feeling is 'yes'.  Just
>   > filling up an array with serial ASCII characters defeats part of the
>   > challenge -- one could certainly imagine a scenario where arbitrary text
>   > is used in a non-serial manner.  But maybe I am saying this because
>   > working with the 'hereis' took most of my less than 2 hour effort (I
>   > almost never use 'hereis') and so want to see what other people come up
>   > with.
>
> The original challenge email with some reformattig to make it easier to read
> and additions made on 2010-01-12 (they're clearly marked):
>
>     I came across the following when doing normal work for my job.
>
>     Using the following
>     ==== start with next line
>            0 NUL   1 SOH    2 STX    3 ETX    4 EOT    5 ENQ    6 ACK    7 BEL
>            8 BS    9 HT    10 NL    11 VT    12 NP    13 CR    14 SO    15 SI
>           16 DLE  17 DC1   18 DC2   19 DC3   20 DC4   21 NAK   22 SYN   23 ETB
>           24 CAN  25 EM    26 SUB   27 ESC   28 FS    29 GS    30 RS    31 US
>           32 SP   33 !     34 "     35 #     36 $     37 %     38 &     39 '
>           40 (    41 )     42 *     43 +     44 ,     45 -     46 .     47 /
>           48 0    49 1     50 2     51 3     52 4     53 5     54 6     55 7
>           56 8    57 9     58 :     59 ;     60 <     61 =     62 >     63 ?
>           64 @    65 A     66 B     67 C     68 D     69 E     70 F     71 G
>           72 H    73 I     74 J     75 K     76 L     77 M     78 N     79 O
>           80 P    81 Q     82 R     83 S     84 T     85 U     86 V     87 W
>           88 X    89 Y     90 Z     91 [     92 \     93 ]     94 ^     95 _
>           96 `    97 a     98 b     99 c    100 d    101 e    102 f    103 g
>          104 h   105 i    106 j    107 k    108 l    109 m    110 n    111 o
>          112 p   113 q    114 r    115 s    116 t    117 u    118 v    119 w
>          120 x   121 y    122 z    123 {    124 |    125 }    126 ~    127 DEL
>     ==== end with previous line
>     in a here document set up an array @print in Perl 5 so that elements
>         0..31 are '.'
>         32 is ' '
>         33..126 are as listed
>         127 is '.'
>         128..255 is '.'
>
>     I'll show my solution (that doesn't use
>         chr
>         do
>         for
>         grep (added on 2010-01-12)
>         if
>         map (added on 2010-01-12)
>         ord
>         repeat (added on 2010-01-12)
>         require (added on 2010-01-14)
>         sub
>         while
>         until
>         use (added on 2010-01-14)
>     ) at next meeting and would like to see other solutions with
>     or without the parenthesized restraint above.    -mark
>
> One must use the here document in the original challenge email so that,
> for example, if "R" where changed to "X" in the here document then
> $print[82] would be "X" after your code runs.
>
> There are two kinds of solutions:
>
> FIRST KIND: ignores the character numbers like the "0" in "0 NUL" and
> assumes the values for the @print array are listed in order.
>
> SECOND KIND: uses the character numbers so that if, for example, "127 DEL"
> were changed to "127 x" then $print[127] would be "x" after the code runs.
>
> I did an easy to read and understand solution of the first kind.  After
> reading comments by other people, I did a Perl golf solution (minimize
> number of characters used) of the second kind, and a reformatted version
> of the Perl golf solution so it is easier to read.
>
> -mark
> _______________________________________________
> Purdue-pm mailing list
> Purdue-pm at pm.org
> http://mail.pm.org/mailman/listinfo/purdue-pm
>   


-- 
Michael Gribskov
Professor of Biological Sciences
Purdue University
Lilly Hall of Life Sciences
915 W. State Street
West Lafayette  IN  47907-2054

gribskov at purdue.edu     vox: 765.494.6933     fax: 765.496-1189
calendar: http://www.google.com/calendar/embed?src=mgribskov%40gmail.com&ctz=America/New_York






More information about the Purdue-pm mailing list