http://www.perlmonks.org?node_id=655264


in reply to Re: Hilbert Curve
in thread Hilbert Curve

Thanks. I originally golfed it down while trying to use as few unique characters as possible. Fun 'vim' command du jour (use after you've selected some lines in Visual Line mode):

:'<,'>!perl -lpwe '$h{$_}++for split//; END { print "\# $_ ", sprintf "\%02d", $h{$_} for grep /\S/, sort { $h{$a}<=>$h{$b} or $a cmp $b } keys \%h; }' | perl -pwe 'next unless/^\#/;$a||=$.-1;chomp;$_.=($.-$a)\%10?" ":"\n"'

I may still write a variation that uses a different obfuscation method. (Anyone know of a golf competition that uses that metric [number of distinct chars.] as part of the score?) I think 30 was the lowest I managed while keeping it under 5 lines. (excluding the 'reŽxpanding and evaluating' code)

$&(),-13;<=@[]_bfimnoprstuxy{}

The alphabetics came from 'sub', 'print', 'pop', 'if', 'my', and the 'x' operator.