On Thu, Sep 27, 2018 at 2:49 AM ToddAndMargo <toddandma...@zoho.com> wrote:

> On 9/26/18 4:33 PM, The Sidhekin wrote:
> > On Wed, Sep 26, 2018 at 11:40 PM ToddAndMargo <toddandma...@zoho.com
> > <mailto:toddandma...@zoho.com>> wrote:
>


> >     And where is it stated what goes in the () and what goes
> >     in the []?
> >
> >
> >    The () is part of a method call syntax; method arguments go there:
> > https://docs.perl6.org/language/syntax#Subroutine_calls
>
> Where does it state that
>
> $ p6 '"a b c d e".words(3).say;'
> (a b c)
>
> means the first three words, starting at zero?
>

  https://docs.perl6.org/routine/words#class_Str says it returns "the same
as a call to $input.comb( / \S+ /, $limit ) would".

  https://docs.perl6.org/routine/comb#class_Str says it "returns a list of
non-overlapping matches limited to at most $limit matches".

  It doesn't say it returns the first such matches; maybe it should.

  It doesn't say "starting at zero", but then, why should it?  The first
three wouldn't be the first three if it skipped any, right?


>
> >    The [] is a postcircumfix operator; index arguments go there:
> > https://docs.perl6.org/language/operators#postcircumfix_[_]
>
> Where does
>
>      multi method words(Str:D $input: $limit = Inf --> Positional)
>
> state that I can do such?
>

  It doesn't.  https://docs.perl6.org/language/operators#postcircumfix_[_]
does.


> I ask this because not all methods will take []
>

  Sure they will.  They might give you runtime errors, if the method
doesn't (at runtime) return something that does Positional, but they will
all take it.


> Also, where is it stated that
>
>     $ p6 '"a b c d e".words(3)[ 2, 4 ].say;'
>     (c Nil)
>
> will send the first three words to [2,4] ?
>

  It doesn't.  It shouldn't: There's no "sending".

  https://docs.perl6.org/language/operators#postcircumfix_[_] tells you it
calls postcircumfix:<[ ]> with a first argument of what the returned (the
first three words) and the remaining positional arguments 2, 4.


Eirik

Reply via email to