P09 - Pack consecutive duplicates of list elements into sublists.
Author: David Romano
Specification
P09 (**) Pack consecutive duplicates of list elements into sublists. If a list contains repeated elements they should be placed in separate sublists.
Example
> pack_dup(<a a a a b c c a a d e e e e>).perl.say [["a","a","a","a"],["b"],["c","c"],["a","a"],["d"],["e","e","e","e"]]
Source code: P09-unobe.pl
use v6; my @l = <a a a a b c c a a d e e e e>; sub prob09 (@in) { return gather while @in.elems { my $val = @in[0]; take [gather while @in.elems and @in[0] ~~ $val { take shift @in }]; } } say ~@l; say prob09(@l).list.perl;