in reply to reduce like iterators

I couldn't resist writing a "golfed" Perl 6 version, heavily inspired by functional programming techniques:
sub compress(*@a) { flat @a Zxx 1, (@a Zne @a[1..*-1]) } say compress(<a a a a b c c a a d e e e e>).perl;

The *-1 is a workaround for a rakudo bug, in a perfect Perl 6 implementation 1..* would work too.