Re: What does `:_` and/or `:_:` signify?

[email protected] (Polgár Márton)
Newsgroups perl.perl6.users
Message-ID <VI1P195MB001447FBEEBB050FA1E6B4A6FEC2A@VI1P195MB0014.EURP195.PROD.OUTLOOK.COM>
The code tried to do the same with `dd` as with `say`. There are two 
differences:

  * `dd`, as a kind of debug tool, doesn't assign any special meaning to
    named arguments so it's more than willing to give a Pair back with a
    colon syntax representation even if was understood as a named argument.
  * there is no `dd` method. I think nowhere in the core but at least
    not in the interface of a Pair.

By the way, I don't think the underscore has any special significance in 
these examples. It would be all the same with `:foobar`, `dd :foobar`, 
`dd foobar`, `dd :foobar:`

Hope this helps ^^

On 2023. 09. 26. 23:02, William Michels wrote:
> Hi Marton, Thanks for the reply.
>
> Below last example (in the REPL), does `dd` not work on Pairs?
> Or is this Indirect Object Notation at work?
>
>
> [3] > :_
> _ => True
> [4] > dd :_
> :_
> Nil
> [5] > dd _
> ===SORRY!=== Error while compiling:
> Undeclared name:
>     _ used at line 1
>
> [5] > dd :_:
> No such method 'dd' for invocant of type 'Pair'
>   in block <unit> at <unknown file> line 1
>
>
>
>
>> On Sep 24, 2023, at 23:40, Polgár Márton 
>> <[email protected]> wrote:
>>
>> Hi Bill,
>>
>> :_ is a Pair with the colon syntax that stands for "_" => True. In 
>> the first case, it got passed as a named argument and say ignored it. 
>> The second case was a method call using the colon syntax - the syntax 
>> lizmat challenged not so long ago. 
>> https://github.com/Raku/problem-solving/issues/384 so, ultimately, it 
>> was (:_).say, a normal say method call on a Pair.
>>
>> Cheers
>>
>>
>>
>> A(z) Galaxy eszközömről küldve
>>
>>
>>
>> -------- Eredeti üzenet --------
>> Feladó: William Michels <[email protected]>
>> Dátum: 2023. 09. 25. 7:15 (GMT+01:00)
>> Címzett: perl6-users <[email protected]>
>> Tárgy: What does `:_` and/or `:_:` signify?
>>
>> Hello,
>>
>> While playing around in an attempt to define new operators, I 
>> stumbled upon some curious results.
>>
>> In the REPL, trying `say :_` returns a blank line.
>>
>> In the REPL, trying `say :_:` returns `_ => True`.
>>
>> What is the meaning of this?
>>
>> admin@mbp ~ % raku
>> Welcome to Rakudo™ v2023.05.
>> Implementing the Raku® Programming Language v6.d.
>> Built on MoarVM version 2023.05.
>>
>> To exit type 'exit' or '^D'
>> [0] > say _
>> ===SORRY!=== Error while compiling:
>> Undeclared name:
>>     _ used at line 1
>>
>> [0] > say :_
>>
>> [0] > say :_:
>> _ => True
>> [0] >
>
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.