my &helper = -> @prev, @rest { ... }
Too much syntax! You can use lexically scoped subs in P6 -- you don't have to use pointy-blocks for everything:
my sub helper (@prev, @rest) { ... }
Now I'm wondering if its possible to get rid of the "if" statment using multi-subs; And after that if its possible to get rid of the indexing into @rest. Something like
sub outer(*@vals)
{
my multi sub helper (@prev) {
take @prev
}
my multi sub helper (@prev, $current, *@rest) {
$current.map: { helper [@prev, $_], *@rest }
}
gather { helper [], *@vals }
}
This is totally untested -- I haven't been able to install pugs yet.
--Dave.