Tonight while working on Rakudo's Str implementation, I noticed
the following line in S29-list/map_function_return_values.t :

    %ret = map { $_ => uc $_; }, split "", $text;

This clashes with the definition of C<split> given by S29,
where the first argument (invocant) is the string to be split
and the delimiter comes second:

    our List multi method split ( Str $input: 
                                  Str $delimiter, 
                                  Int $limit = * ) is export
    our List multi method split ( Str $input: 
                                  Rule $delimiter, 
                                  Int $limit = * ) is export

I suspect that P5 programmers will be in the habit of writing
C<split $delim, $target>.  In fact, throughout the t/spec/ test suite 
the subcall form of C<split> nearly always puts the delimiter before
the thing to be split, and not as S29 has it here.

I'm guessing that either (a) S29 is wrong about the 'is export'
on the above methods, or (b) the test suite is consistently
wrong in the ordering of its arguments to C<split> as a subroutine
call.

Any comments or suggestions?

Thanks!

Pm

Reply via email to