Currently the spec says:

 C<map> returns a lazily evaluated list which is comprised of
 the return value of the expression, evaluated once for every
 one of the C<@values> that are passed in.

But both pugs and rakudo respect the arity of the code ref passed to it,
so that (1..6).map({$^a + $^b + $^c}) returns the list (6, 15), which is
very nice and very DWIM'my.

But it opens the question what should happen if there is a number of
items in the list that's not easily divisible by the arity - should the
rest just be padded with undef's? or just ignored? Or fail() with a
friendly error message?

I don't really mind either way, just want to test and implement it
correctly.

The same question also arises for "magical" List.reduce and similar methods.

Cheers,
Moritz

Reply via email to