Let's say I want all permutations of 2 letters out of a, b and c.
I can do:
my @perm = <a b c>.combinations(2)».permutations;
say @perm;
# [((a b) (b a)) ((a c) (c a)) ((b c) (c b))]
which is close, but not exactly what I need. How do I “flatten” this so that I get:
# [(a b) (b a) (a c) (c a) (b c) (c b)]
?
See also "a better way to accomplish what I (OP) wanted".
my \perm = <a b c>.combinations(2)».permutations;
say perm; # (((a b) (b a)) ((a c) (c a)) ((b c) (c b)))
say perm[*]; # (((a b) (b a)) ((a c) (c a)) ((b c) (c b)))
say perm[*;*]; # ((a b) (b a) (a c) (c a) (b c) (c b))
say perm[*;*;*] # (a b b a a c c a b c c b)
I used a non-sigil'd variable because I think it's a bit clearer what's going on for those who don't know Raku.
I didn't append the subscript to the original expression but I could have:
my \perm = <a b c>.combinations(2)».permutations[*;*];
say perm; # ((a b) (b a) (a c) (c a) (b c) (c b))