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:01 teatime joined 03:12 Sussysham joined
el gatito (** advocate) cdn.discordapp.com/attachments/768.../image.png 03:24
😭
03:25 Sussysham left 03:40 rf left 05:28 Heptite left 06:46 teatwo joined 06:50 teatime left 08:58 frost joined 09:03 frost left
Nemokosch What is this? 09:16
el gatito (** advocate) btw is a[1, 2, 3] interpreted as a.AT-POS((1, 2, 3)) or a.AT-POS(1, 2, 3)
Nahita neither, i think 09:46
that's 3 calls to AT-POS
Nemokosch really, what does it actually do 09:57
&postcircumfix:<[ ]>.sourcery(1,2,3) gives me github.com/rakudo/rakudo/blob/704a...ce.pm6#L16
doesn't help
it's not the right candidate
oh I'm stoopid 10:00
&postcircumfix:<[ ]>.sourcery(@a, (1, 2, 3)) gives github.com/rakudo/rakudo/blob/704a...e.pm6#L119 10:01
after a little chasing, it turns out that Nahita was right github.com/rakudo/rakudo/blob/d769...ce.pm6#L12 is called for all positions 10:06
el gatito (** advocate) so its (a.AT-POS(1), a.AT-POS(2), a.AT-POS(3))? 10:08
Nemokosch yep 10:09
el gatito (** advocate) m:perl class A { method AT-POS($i) { say $i; $i; } } A[1, 2, 3] 10:10
Raku eval Exit code: 1 ===SORRY!=== Error while compiling /home/glot/main.raku A cannot be parameterized at /home/glot/main.raku:8 ------> A[1, 2, 3]⏏<EOL>
el gatito (** advocate) m:perl class A { method AT-POS($i) { say $i; $i; } } say A.new()[1, 2, 3];
Raku eval 1 2 3 (1 2 3)
el gatito (** advocate) this behavior feels inflexible 10:11
Nemokosch it makes sense though 10:12
this operator is not something you should overload
however, you can overload AT-POS and get all the indexing possibilities 10:13
el gatito (** advocate) it makes just as much sense if a[1, 2, 3] means a[1][2][3] as this 10:19
raku doesn't allow you to have that option via AT-POS
Nemokosch that's a[1; 2; 3]
check mate
el gatito (** advocate) 😑 10:24
Nemokosch and yes inb4 6.e will be shipping with || that flattens into semicolon list for indexing
el gatito (** advocate) tried to install wsl via standalone appx package 11:49
mb i have to upgrade even further 😓 11:51
12:51 QhpAptyj9hj0RQwM joined
so if i want (a[1; 2], a[3; 4]) i can a[(1; 2), (3; 4)]? 12:52
Nemokosch wouldn't know without trying 12:53
I would be more confident about the other way around 12:54
12:56 QhpAptyj9hj0RQwM left
el gatito (** advocate) m:perl say $_[(1; 2), (3; 4)] given ( (1, 2, 3, 4), (5, 6, 7, 8), (9, 10, 11, 12), ); 13:01
Raku eval (((5 6 7 8) (9 10 11 12)) (Nil Nil))
el gatito (** advocate) m:perl say $_[(0; 1), (2; 3)] given ( (1, 2, 3, 4), (5, 6, 7, 8), (9, 10, 11, 12), );
Raku eval (((1 2 3 4) (5 6 7 8)) ((9 10 11 12) Nil))
el gatito (** advocate) it gave some strange output lol 13:02
ok what its actually doing is turning into a[0, 1, 2, 3] 13:03
funny behavior as always 13:04
m:perl say $_[(0; 1), 2] given ( (1, 2, 3, 4), (5, 6, 7, 8), (9, 10, 11, 12), );
Raku eval (((1 2 3 4) (5 6 7 8)) (9 10 11 12))
el gatito (** advocate) actually its even weirder 13:05
Nemokosch this ; thing is an operator, that's why I was fairly suspicious
lizmat ; is an operator ?
Nemokosch like, what even is (0 ; 1), a two-dimensional list?
el gatito (** advocate) m:perl say $_[(0, 1), 2] given ( (1, 2, 3, 4), (5, 6, 7, 8), (9, 10, 11, 12), );
lizmat m: dd (0;1)
camelia (0, 1)
Raku eval (((1 2 3 4) (5 6 7 8)) (9 10 11 12))
lizmat m: dd (0,;1,)
camelia ((0,), (1,))
Nemokosch m: dd (0 ; 1)
Raku eval (0, 1)
Nemokosch mmm 13:06
el gatito (** advocate) yeah same output
lizmat a single value is not a list, it needs a comma
m: dd (0,;1,)
camelia ((0,), (1,))
lizmat m: dd (0,1;1,2)
camelia ((0, 1), (1, 2))
lizmat m: dd (0,1;1,2)[1;1] 13:07
camelia 2
Nemokosch 🤫
el gatito (** advocate) ok that makes a[0, 1, 2] and a[0; 1; 2] even weirder inconsistency 13:08
lizmat its not when you consider that (0) is **NOT** a list
(0,) *is*
Nemokosch [; ] is a separate operator 13:09
lizmat suppose you want to initialize an array with some elements being lists and others not
how would you do that?
el gatito (** advocate) [0, (1, 2), 3] 13:10
lizmat m: dd [0, (1, 2), 3]
camelia [0, (1, 2), 3]
lizmat hmmm 13:11
Nemokosch so iirc in a[0, 1, 2], 0, 1, 2 is data
however, in a[0; 1; 2], 0; 1; 2 is syntax
lizmat ok, I guess there is something to be said to have ; inside circumfixes have their value to always be interpreted as lists 13:13
14:49 rf joined 15:37 Heptite joined 17:23 teatwo left 17:25 teatime joined 18:12 QhpAptyj9hj0RQwM joined 18:30 QhpAptyj9hj0RQwM left 18:46 teatwo joined 18:48 tea3po joined 18:49 teatime left 18:51 teatwo left 19:37 jgaz joined 20:10 gfldex left, sivoais left, nicole left 20:11 gfldex joined, sivoais joined, nicole joined 20:17 sivoais left 20:18 sivoais joined 20:24 jgaz left 22:29 QhpAptyj9hj0RQwM joined 23:14 QhpAptyj9hj0RQwM left