Beefy Boxes and Bandwidth Generously Provided by pair Networks
Pathologically Eclectic Rubbish Lister

Re^2: Golf: Improve this guy's fail . . . please!

by ikegami (Pope)
on Jun 30, 2009 at 22:44 UTC ( #776206=note: print w/replies, xml ) Need Help??

in reply to Re: Golf: Improve this guy's fail . . . please!
in thread Golf: Improve this guy's fail . . . please!

At the opposite end of the spectrum, reading in the whole file:

local $/; ++$chars{$_} for <> =~ /\w/g

(Trimmed: local$/;++$c{$_}for<>=~/\w/g)

It only accepts one file, though.

Update: 5 shorter, accepts multiple files, and doesn't mess with $/:

++$chars{$_} for map /\w/g, <>

(Trimmed: ++$c{$_}for map/\w/g,<>)

Replies are listed 'Best First'.
Re^3: Golf: Improve this guy's fail . . . please!
by mr_mischief (Monsignor) on Jul 01, 2009 at 00:38 UTC
    I borrowed your idea and made something short and very ugly which does the whole job including percentages and total. I even added a count of distinct characters:
    ++$t,++$c{$_}for map/\w/g,<>; print$_,"\t",$c{$_},"\t",$c{$_}/$t*100,$/for sort keys %c; print"Distinct: ".keys(%c)."\tTotal: $t\n";

    I doubt I'd call that an "improvement", at least with a straight face. It could be cleaned up pretty easily, though.

      It could be cleaned up pretty easily, though.

      Then do it! No good leaving lousy code floating around... ;-)

        But... but... it's golf! ;-)

        I guess adding a feature's not exactly in the spirit of golf, though. More golfed:

        ++$t,++$c{$_}for map/\w/g,<>; print$_,' ',$c{$_},' ',$c{$_}/$t*100,$/for sort keys%c; print"Total: $t\n"

        So now that that's out of the way, how about still short but somewhat easier to read?

        ++$t, ++$c{$_} for map /\w/g, <>; for ( sort keys %c ) { $p = sprintf '%3.2f', $c{$_} / $t * 100; printf "%-5s%5d%7s%%\n", $_, $c{$_}, $p; } print 'Distinct: ' . (scalar keys %c) . "\tTotal: $t\n"

Log In?

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://776206]
and all is quiet...

How do I use this? | Other CB clients
Other Users?
Others having an uproarious good time at the Monastery: (3)
As of 2018-03-21 06:10 GMT
Find Nodes?
    Voting Booth?
    When I think of a mole I think of:

    Results (264 votes). Check out past polls.