Hi Yary,

I went over this with Joe as well, and I was equally confused. So if I
understand what you're saying correctly, if we see something like
"Bool :$match" that says we should drop the dollar-sign ($) and enter
":match" to set "Bool" = True, and thus return the list of match
objects?

On another note (or possibly the same note), I tried code similar to
Joe's with fair success. I was able to get the REPL to understand a
"True" or "False" parameter, but never in conjunction with a "$limit"
parameter. Is this the correct behaviour, and why?

> #REPL
Nil
> say comb(/\w/, "a;b;c",  False).perl;
().Seq
> say comb(/\w/, "a;b;c",  True).perl;
("a",).Seq
> say comb(/\w+/, "a;b;c",  True).perl;
("a",).Seq
> say comb(/\w+/, "a;b;c",  2).perl;
("a", "b").Seq
> say comb(/\w+/, "a;b;c",  3).perl;
("a", "b", "c").Seq
> say comb(/\w+/, "a;b;c",  4).perl;
("a", "b", "c").Seq
> say comb(/\w+/, "a;b;c",  True).perl;
("a",).Seq
> say comb(/\w+/, "a;b;c",  2, True).perl;
Too many positionals passed; expected 2 or 3 arguments but got 4
  in block <unit> at <unknown file> line 1

> say comb(/\w+/, "a;b;c",  2, :True).perl;
Unexpected named argument 'True' passed
  in block <unit> at <unknown file> line 1

> $*VM
moar (2019.07.1)

Any help appreciated, Bill.




On Mon, Nov 11, 2019 at 9:46 AM yary <not....@gmail.com> wrote:
>
> The syntax is in the declaration you pasted in your email
>
> > multi sub    comb(Regex:D $matcher, Str:D $input, $limit = Inf, Bool 
> > :$match)
>
> The colon in "Bool :$match" makes it a named argument. Not sure where 
> definitive docs are, decent starting point is 
> https://docs.perl6.org/type/Signature#Positional_vs._named_arguments
>
>
> -y
>
>
> On Sun, Nov 10, 2019 at 11:18 PM Joseph Brenner <doom...@gmail.com> wrote:
>>
>> Thanks, that form does what I want--
>>
>> I don't see how I could've understood that from the docs, though.
>> For example, I don't see any place where the :match adverb is
>> mentioned for either the method or routine form of comb.
>>
>>
>>
>> On 11/10/19, Elizabeth Mattijsen <l...@dijkmat.nl> wrote:
>> > dd "foobar".comb(/./, :g, :match);
>> > (「f」 「o」 「o」 「b」 「a」 「r」)
>> >
>> >> On 10 Nov 2019, at 23:46, Joseph Brenner <doom...@gmail.com> wrote:
>> >>
>> >> Can someone give me an example of how to use the comb routine to
>> >> return a list of match objects?
>> >>
>> >> The documentation here:
>> >>
>> >> https://docs.perl6.org/type/Str#routine_comb
>> >>
>> >> Mentions a boolean option to get match objects:
>> >>
>> >>> If $matcher is a Regex, each Match object is
>> >>> converted to a Str, unless $match is set.
>> >>
>> >> I gather that I must be reading this signature
>> >> wrong somehow, I can't get it to work:
>> >>
>> >>> multi sub    comb(Regex:D $matcher, Str:D $input, $limit = Inf, Bool
>> >>> :$match)
>> >>
>> >> I keep trying variations of things like this:
>> >>
>> >>    my @hits = comb(m/$search_pattern/, $chunk, 100, True);
>> >

Reply via email to