<div><font class="Apple-style-span" color="#333333" face="arial, sans-serif"><span class="Apple-style-span" style="border-collapse: collapse;"><br></span></font></div><div><div class="gmail_quote">2010/8/11 Horace Dynamite <span dir="ltr">&lt;<a href="mailto:horace.dynamite@gmail.com">horace.dynamite@gmail.com</a>&gt;</span><br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;"># And now the the thing I can&#39;t figure out how to do, the programmer<br>
creates a 2d hash, retaining the &quot;values&quot; column.<br>
%CODE = ( A =&gt; { map { $CODE_CHARS{A}[$_] =&gt; $_ } 0..106 },<br>
          B =&gt; { map { $CODE_CHARS{B}[$_] =&gt; $_ } 0..106 },<br>
          C =&gt; { map { $CODE_CHARS{C}[$_] =&gt; $_ } 0..106 } );<br></blockquote><div><br></div><div><br></div><div>Are you asking how to retain the index (i.e. the $_, what you called &quot;values&quot;) along with the encodings?  The amount of Perl code you showed did not do that (it just retains $_ without the encoding). </div>
<div><br></div><div>Assuming you want to retain both the encoding and value &quot;together&quot;, a <b>cons</b> will do: </div><div><br></div></div></div><blockquote class="webkit-indent-blockquote" style="margin: 0 0 0 40px; border: none; padding: 0px;">
<div><div class="gmail_quote"><div><div><font class="Apple-style-span" face="&#39;courier new&#39;, monospace">(define (.. lower higher) ;; shorthand for perl&#39;s N..M generator syntax </font></div></div></div></div><div>
<div class="gmail_quote"><div><div><font class="Apple-style-span" face="&#39;courier new&#39;, monospace">  (build-list (- (+ higher 1) lower) (lambda (n) (+ n lower))))</font></div></div></div></div><div><div class="gmail_quote">
<div><font class="Apple-style-span" face="&#39;courier new&#39;, monospace"><br></font></div></div></div><div><div class="gmail_quote"><div><div><font class="Apple-style-span" face="&#39;courier new&#39;, monospace">(define A</font></div>
</div></div></div><div><div class="gmail_quote"><div><div><font class="Apple-style-span" face="&#39;courier new&#39;, monospace">  (make-hash (map (lambda (value) </font></div></div></div></div><div><div class="gmail_quote">
<div><div><font class="Apple-style-span" face="&#39;courier new&#39;, monospace">                    (cons (list-ref 128-A value) ;; key </font></div></div></div></div><div><div class="gmail_quote"><div><div><font class="Apple-style-span" face="&#39;courier new&#39;, monospace">                          ;; encoding + value </font></div>
</div></div></div><div><div class="gmail_quote"><div><div><font class="Apple-style-span" face="&#39;courier new&#39;, monospace">                          <b>(cons (list-ref ENCODING n) value)</b>))</font></div></div></div>
</div><div><div class="gmail_quote"><div><div><font class="Apple-style-span" face="&#39;courier new&#39;, monospace">                  (.. 0 106))))</font></div></div><div><font class="Apple-style-span" face="&#39;courier new&#39;, monospace">;; (define B ...) </font></div>
<div><font class="Apple-style-span" face="&#39;courier new&#39;, monospace">;; (define C ...) </font></div></div></div></blockquote><div><div class="gmail_quote"><div><div><font class="Apple-style-span" face="&#39;courier new&#39;, monospace"><br>
</font></div></div><div><br></div><div>Then you just refer to the values... </div><div><br></div></div></div><blockquote class="webkit-indent-blockquote" style="margin: 0 0 0 40px; border: none; padding: 0px;"><div><div class="gmail_quote">
<div><font class="Apple-style-span" face="&#39;courier new&#39;, monospace">(define (encoding-ref hash key) </font></div></div></div><div><div class="gmail_quote"><div><font class="Apple-style-span" face="&#39;courier new&#39;, monospace">  (<b>car</b> (hash-ref hash key))) </font></div>
</div></div><div><div class="gmail_quote"><div><font class="Apple-style-span" face="&#39;courier new&#39;, monospace"><br></font></div></div></div><div><div class="gmail_quote"><div><font class="Apple-style-span" face="&#39;courier new&#39;, monospace">(define (value-ref hash key) </font></div>
</div></div><div><div class="gmail_quote"><div><font class="Apple-style-span" face="&#39;courier new&#39;, monospace">  (<b>cdr</b> (hash-ref hash key))) </font></div></div></div></blockquote><div><div class="gmail_quote">
<div><br></div><div>Then you have </div><div><br></div></div></div><blockquote class="webkit-indent-blockquote" style="margin: 0 0 0 40px; border: none; padding: 0px;"><div><div class="gmail_quote"><div><div><font class="Apple-style-span" face="&#39;courier new&#39;, monospace">&gt; (encoding-ref A #\G)</font></div>
</div></div></div><div><div class="gmail_quote"><div><div><font class="Apple-style-span" face="&#39;courier new&#39;, monospace">11010001000</font></div></div></div></div><div><div class="gmail_quote"><div><div><font class="Apple-style-span" face="&#39;courier new&#39;, monospace">&gt; (value-ref A #\G)</font></div>
</div></div></div><div><div class="gmail_quote"><div><div><font class="Apple-style-span" face="&#39;courier new&#39;, monospace">39</font></div></div></div></div></blockquote><div><div class="gmail_quote"><div><div><br></div>
<div>Hope this is what you are looking for. </div><div><br></div><div>Cheers,</div><div>yc</div><div><br></div><div> </div></div></div>
</div>