This channel is intended for people just starting with the Raku Programming Language ( Logs are available at
Set by lizmat on 8 June 2022.
00:02 [Coke]__ left 00:06 [Coke]_ joined 00:22 guifa_ joined 00:24 guifa left 00:31 [Coke]__ joined 00:33 [Coke]_ left 00:59 Oshawott left 01:36 [Coke]__ left 01:38 [Coke] joined 02:08 [Coke]__ joined 02:10 [Coke] left, archenoth joined 02:16 [Coke]_ joined 02:18 [Coke]__ left 02:24 frost joined
zacque Hi, what does the `\SELF:` stands for in the doc: `multi method map(\SELF: █; :$label, :$item)`? Where can I look it up? 03:22
MasterDuke that's the invocant 03:27
zacque Thanks, can you elaborate further what it does? I've searched and read through the docs but still couldn't figure out what `\SELF:` meant 03:40
elcaro By default, the invocant of a method is `self` and you don't need to declare it... but you can if you like, eg. 03:41
has $.attribute;
method (\this: $arg) { this.attribute + $arg }
you could say... all methods have an implicit first argument of `\self:` 03:42
03:48 [Coke]_ left
I guess docs are referring to this multi here 03:49
What I don't know... is why the named invocant `SELF` is used here, instead of relying on the default `self`.
... but I'm sure there's probably a reason why. Maybe some underlying reason because it's passing the invocant to another function?
03:50 [Coke]_ joined
zacque Ah, I see. I'll play around to see how it works. Thanks! 04:01
05:24 [Coke]___ joined 05:26 [Coke]_ left 05:30 [Coke] joined 05:32 [Coke]___ left 07:01 [Coke]___ joined 07:04 [Coke] left 08:09 dakkar joined 08:11 archenoth left
lizmat elcaro: "self" is always decontainerized 08:32
by specifying an explicit invocant with \, e.g. \SELF you get the invocant that is *not* decontainerized 08:33
m: class A { method b(\SELF:) { SELF = 42 } }; my $b =; dd $b; $b.b; dd $b 08:34
camelia A $b =
Int $b = 42
lizmat ^^ a weird example, but I hope it gets the message across :-) 08:35
08:38 [Coke] joined 08:40 [Coke]___ left 08:46 [Coke]__ joined 08:47 [Coke] left
Nemokosch lizmat: how can you specify "always decont" in general? 08:51
lizmat well, that's the default when passing parameters 08:52
so you don't have to
Nemokosch So $param? Because @param is kinda tricky again. 08:58
lizmat yeah 09:03
zacque lizmat: I see, thanks for the example! 09:22
guifa_ a few reasons to note use self: (1) you'll be inserting an anonymous method some that requires use of self. One of the two will need to have a different name given. (2) you want to make the object mutable, e.g. method foo ($self is rw:) { $self = somethingTotallyDifferent } 10:02
that latter one is ALSO a way to check if an object is in a writable container. You can multi with a plain method and the is rw will be called if writable, and the plain one if not. 10:03
10:10 archenoth joined 10:16 [Coke] joined 10:18 [Coke]__ left 11:47 frost left 11:53 [Coke]__ joined 11:55 [Coke] left 12:01 [Coke] joined 12:03 [Coke]__ left 12:05 Kaiepi left 12:33 Kaiepi joined 12:58 Kaiepi left 13:46 Kaiepi joined 14:01 discord-raku-bot left, discord-raku-bot joined 14:05 razetime joined 16:36 dakkar left 17:14 razetime left 17:29 jetchisel joined 17:37 polarbearX joined
polarbearX What is right raku's idiomatic way to replace perl' s : while(<>) { s/A/B/ ; ; print } # ? ? ? 17:37
18:11 polarbearX left
lizmat I'd say: 18:23
m: .subst(/A/, "B").say for lines
camelia »Wann treffen wir drei wieder zusamm?«
»Um die siebente Stund‘, am Brückendamm.«
»Bm Mittelpfeiler.«
»Ich lösche die Flamm.«
»Ich mit«

»Ich komme vom Norden her.«
»Und ich vom Süden.…
18:23 discord-raku-bot left
lizmat m: .subst(/W/, "B").say for lines 18:23
camelia »Bann treffen wir drei wieder zusamm?«
»Um die siebente Stund‘, am Brückendamm.«
»Am Mittelpfeiler.«
»Ich lösche die Flamm.«
»Ich mit«

»Ich komme vom Norden her.«
»Und ich vom Süden.…
18:23 discord-raku-bot joined 18:27 discord-raku-bot left 18:28 discord-raku-bot joined
lakmatiol sth like 21:09
print S/A/B/ for lines
``` should work
sth like 21:11
put S/A/B/ for lines
``` should work
Kaiepi it does, just i'm surprised `$_` is mutable
Nemokosch $_ is raw by default iirc 21:13
so it really aliases what it refers to
Kaiepi yeah 21:15
there's a container involved somewhere
not sure it hurts in this case
Nemokosch what are you referring to, by the way?
Kaiepi the `S/A/B/` part in particular 21:19
which doesn't seem to assign
which doesn't seem to reassign
so it's w/e
Nemokosch that's right, uppercase S doesn't mutate
i got them reversed
paranoid about containers from lists ig 21:21
Nemokosch oh okay 😄
22:44 _4d47 joined 22:45 _4d47 left