This channel is intended for people just starting with the Raku Programming Language (raku.org). Logs are available at irclogs.raku.org/raku-beginner/live.html
Set by lizmat on 8 June 2022.
01:07 jaguart joined 01:20 Manifest0 left 02:22 ACfromTX left 06:59 ACfromTX joined 08:29 teatime left 09:20 teatime joined 10:29 teatime left 10:30 teatime joined, Manifest0 joined 11:00 teatime left, teatime joined
ab5tract hey DarthGandalf, regarding using Array.splice to insert arrays, here is a workaround: 11:22
m: my @a = [1,1],[2,2],[3,3]; @a.splice(1,0,[[4,4],]); dd @a 11:23
camelia Mu @a = [[1, 1], [4, 4], [2, 2], [3, 3]]
lizmat m: my @a = [1,1],[2,2],[3,3]; @a.splice(1,0,$[4,4]); dd @a # just checkinng 11:24
camelia Mu @a = [[1, 1], 4, 4, [2, 2], [3, 3]]
lizmat still feels like a bug to me
but perhaps a bug that we cannot fix without breaking the ecosystem 11:25
ab5tract if so, it appears to be something in the way `@a.iterator.push-until-lazy` handles `$[]` 11:26
DarthGandalf shrugs
I don't know what the right solution should be, sorry
ab5tract the workaround that I shared isn't going to go away, that's for sure 11:28
lizmat true 11:32
librasteve m: my @a = [1,1],[2,2],[3,3]; my @b = [4,4]; @a.splice(1,0,@b); say "@a" 11:38
Raku eval @a
librasteve hmmm - discord doesn't like the at symbol --- I am just chiming in that splicing should handle where the insert is an array var 11:40
ab5tract m: my @a = [1,1],[2,2],[3,3]; my @b = [4,4]; @a.splice(1,0,@b); dd @a
camelia Mu @a = [[1, 1], 4, 4, [2, 2], [3, 3]]
librasteve thanks!
ab5tract yup, it's the same issue
lizmat m: my @b = [4,4]; dd @b 11:44
camelia Mu @b = [4, 4]
lizmat m: my @b = $[4,4]; dd @b
camelia Mu @b = [[4, 4],]
lizmat note itemization *is* taken into account then 11:45
and that [4,4] is flattened into @b is because of the single arg rule
m: my @b = [4,4],[5,5]; dd @b
camelia Mu @b = [[4, 4], [5, 5]]
ab5tract y @a = [1,1],[2,2],[3,3]; my @b = $[4,4]; @a.splice(1,0,@b); dd @a 11:47
m: my @a = [1,1],[2,2],[3,3]; my @b = [4,4]; @a.splice(1,0,@b); dd @a
camelia Mu @a = [[1, 1], 4, 4, [2, 2], [3, 3]]
ab5tract dangit, sorry.
m: my @a = [1,1],[2,2],[3,3]; my @b = [4,4]; @a.splice(1,0,@b); dd @a
camelia Mu @a = [[1, 1], 4, 4, [2, 2], [3, 3]]
ab5tract fat fingers today :( 11:48
m: my @a = [1,1],[2,2],[3,3]; my @b = $[4,4]; @a.splice(1,0,@b); dd @a
camelia Mu @a = [[1, 1], [4, 4], [2, 2], [3, 3]]
ab5tract lizmat++
lizmat m: my @a = [1,1],[2,2],[3,3]; my @b = 4,4; @a.splice(1,0,$@b); dd @a
camelia Mu @a = [[1, 1], 4, 4, [2, 2], [3, 3]]
librasteve I think lizmat is arguing that both these are right and that the single argument rule applies to the splice arg ??
lizmat no, I'm arguing that: 11:49
m: my @a = [1,1],[2,2],[3,3]; my @b = 4,4; @a.splice(1,0,$@b); dd @a
camelia Mu @a = [[1, 1], 4, 4, [2, 2], [3, 3]]
lizmat is wrong in ignoring the itemization of @b in $@b
librasteve ok - i agree with that
lizmat my @b = 4,4; and my @b = [4,4] is correct, because of the single arg rule 11:50
(producing the same result, I mean)
librasteve ok - I kinda get that ... the single arg rule is sometimes surprising to me ... but I do see the point 11:51
thanks for clarifying
ab5tract DarthGandalf: so a slightly less ugly workaround is also available: 11:52
m: my @a = 1,2,3; @a.splice(1,0,[$[3,5]],); dd @a
camelia Mu @a = [1, [3, 5], 2, 3]
ab5tract ignore the extra comma after `[$[3,5]]`, it's not necessary 11:53
DarthGandalf I didn't use raku enough to develop taste to say which of them is uglier, but they look kinda the same to me :) 11:54
ab5tract beauty is always in the eye of the beholder :) 11:55
13:15 teatime left 13:16 teatime joined 17:03 teatime left 22:19 habere-et-disper joined
habere-et-disper How do I access/reference the name of a variable ? 22:21
m: my $abc = '123'; say $abc.^name # wanting 'abc' ?
camelia Str
MasterDuke m: my $abc = '123'; say $abc.VAR.name
camelia $abc
habere-et-disper Thanks ! Does this also work on tokens ? 22:24
MasterDuke good question. i have no idea, but probably
m: my token foo { . }; say &foo.VAR.name 22:25
camelia foo
lizmat m: my token foo { . }; say &foo.name 22:32
camelia foo
MasterDuke huh, why didn't my version print '&foo'? 22:34
lizmat m: my sub foo { . }; say &foo.name
camelia ===SORRY!=== Error while compiling <tmp>
Unsupported use of . to concatenate strings. In Raku please use: ~.
at <tmp>:1
------> my sub foo { . ⏏}; say &foo.name
lizmat m: my sub foo { }; say &foo.name 22:35
camelia foo
MasterDuke m: my sub foo {  }; say &foo.VAR.name
camelia foo
MasterDuke m: my @foo; say @foo.VAR.name
camelia @foo
MasterDuke m: my %foo; say %foo.VAR.name
camelia %foo
lizmat .VAR on a non-container is identity
habere-et-disper I was trying to get the name of a matched token in a grammar and .keys worked. 22:38
23:17 habere-et-disper left