Skip to content

Instantly share code, notes, and snippets.

@colomon
Created December 4, 2010 13:54
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save colomon/728195 to your computer and use it in GitHub Desktop.
Save colomon/728195 to your computer and use it in GitHub Desktop.
class QuickBag {
has @.values;
method add($value) {
@.values.push($value);
}
method roll() {
@.values.roll;
}
}
my %letter = ('a' .. 'z').map({; $_ => QuickBag.new });
%letter{' '} = QuickBag.new;
my $last;
for $*IN.slurp.comb(/<alpha> | \s/)>>.lc>>.subst(/\s | '_'/, " ") -> $c {
next if $c eq " " && $last eq " ";
if $last {
%letter{$last}.add($c);
}
$last = $c;
}
say "Starting chain";
my @chain := 'a', -> $c { %letter{$c}.roll } ... *;
say @chain[^80];
#
# for %letter.keys.sort -> $letter {
# say "$letter: { %letter{$letter}.values.join }";
# }
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment