|
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. |
|||
|
05:34
saint- left
06:57
Oshawott joined
06:59
archenoth left
07:06
Kaiepi joined
08:00
archenoth joined
08:02
Oshawott left
08:37
Oshawott joined
08:39
archenoth left
09:09
jaguart joined
09:19
Oshawott left,
Oshawott joined
11:13
Ssw joined
11:27
Ssw left
12:08
Kaipei joined
12:10
Kaiepi left
12:18
frost joined
12:38
frost left
|
|||
| South | how would i create an array of whatever length filled with a single value? ruby has Array#* which does this, but raku handles smthn like `<111>*5` or `[111]*5` differently | 13:13 | |
| Nemokosch | `xx` is the operator you are looking for | 13:15 | |
| m: dd 111 xx 5 | 13:16 | ||
| if you assign a Sequence to an Array, it will be stored as expected | 13:17 | ||
| SmokeMachine | m: dd 111 xx 5 | ||
| camelia | (111, 111, 111, 111, 111).Seq | ||
| Nemokosch | Yes, this time around it worked | 13:18 | |
| just not on your end 😛 | 13:19 | ||
| in Raku, the general principle is that operands adapt to the operator, not vice versa. Of course you can overload the same known operators to handle new types - but generally you have no reason to, because you can define new operators | 13:20 | ||
| SmokeMachine | does Camelia answers `m:` from discord bridge to discord bridge only? | ||
| South | nice, i was getting a little irked i couldn’t find it anywhere in the docs but it’s just a little hard to navigate rn | 13:21 | |
| Nemokosch | Smokemachine: seems like that, but even that doesn't seem to work for the raku irc channel | 13:23 | |
| I can imagine that. Apparently the keyword to remember is "repetition"; it's described as the "list repetition operator" | 13:25 | ||
| as opposed to `x` which is the "string repetition operator" | |||
| South | yeah i went looking for it on the op page after you mentioned it | ||
| Nemokosch | strings and lists are so distinct that strings wouldn't even take indexing... | ||
| which is a bit too much to my taste but welp, comb can help if it's really needed | 13:26 | ||
| South | i don’t remember raku being this extensive when i last looked at it tbh, theres a lot going on when i look at examples | 13:28 | |
| it could very well be because of how unique it is tho | 13:29 | ||
| Nemokosch | It's a huge language really. Someone said lately that it might be bigger than C++ which I wouldn't say buuut... it should give you an idea | ||
| South | i caught a glimpse of the scale just through the ops page for sure, even coming from J i was a little awe struck | 13:31 | |
| Nemokosch | hahaha, J | ||
| the asciified APL, right? xD | |||
| South | i have a feeling this will be a little harder to learn than J tbh | 13:32 | |
| yeah, it’s the successor | |||
| Nemokosch | well you can use Raku as an operator freakshow, too | ||
| South | that is the goal, yes | 13:33 | |
| Nemokosch | 🤣 | ||
| South | i’ve been aware of raku for quite a while now and it’s reputation, only just now mustering the grit to really try it out | ||
| Nemokosch | with special regards to the metaoperators and the ability to define your own operators | ||
| with your preferred associativity and precedence, of course xD | 13:34 | ||
| South | very nice | ||
| Nemokosch | ```perl | 13:35 | |
| #!/usr/bin/env raku | |||
| subset Digit of Int where *.chars == 1; | 13:36 | ||
| sub infix:<nN>(Digit() $a, Digit() $b) is assoc<chain> { | |||
| abs($a - $b) == 1 | |||
| } | |||
| my $n = prompt 'Input: '; | |||
| say [nN] $n.comb; | |||
| ``` | |||
| tells whether all subsequent digits of a number differ by one or not | |||
| South | huh, that’s pretty nifty | 13:46 | |
| the subset line is really elegant | 13:47 | ||
|
14:20
m_athias left
14:21
m_athias joined
14:49
saint- joined
14:50
saint- left,
saint- joined
14:53
jgaz joined
15:20
jgaz left
|
|||
| gfldex | m:``` | 16:09 | |
| use MONKEY-TYPING; | |||
| augment class Str { | |||
| method AT-POS($idx){ self.comb[$idx] } | |||
| } | |||
| say "Hallo Nemokosch!"[6]; | |||
| ``` | |||
| <@297037173541175296> ^^^ there you go | |||
| Nemokosch | exactly... | 16:17 | |
|
16:40
jgaz joined
|
|||
| SmokeMachine | m: multi postcircumfix:<[ ]>(Str $s, UInt $i) { substr $s, $i, 1 } say "blablabla"[3] | 17:20 | |
| camelia | ===SORRY!=== Error while compiling <tmp> Strange text after block (missing semicolon or comma?) at <tmp>:1 ------> ]>(Str $s, UInt $i) { substr $s, $i, 1 }⏏ say "blablabla"[3] expecting any of: infix infi… |
||
| SmokeMachine | m: multi postcircumfix:<[ ]>(Str $s, UInt $i) { substr $s, $i, 1 }; say "blablabla"[3] | 17:21 | |
| camelia | b | ||
| gfldex | SmokeMachine: overloading postcircumfix:<[ ]> is almost never a good idea | 17:30 | |
| m: multi postcircumfix:<[ ]>(Str $s, UInt $i) { substr $s, $i, 1 }; say "blablabla"[3..6] | |||
| camelia | Index out of range. Is: 3, should be in 0..0 in block <unit> at <tmp> line 1 |
||
| gfldex | The build in candidates take care of quite a few types of arguments | 17:31 | |
| gfldex | m:``` | 17:33 | |
| use MONKEY-TYPING; | |||
| augment class Str { | |||
| method AT-POS($idx){ dd $idx; self.comb[$idx] } | |||
| method elems { self.chars } | |||
| } | |||
| say "Hallo Nemokosch!"[6..9, *-1].flat.join; | |||
| ``` | |||
| Nemokosch | I'm horrified 😂 | 17:38 | |
| gfldex | <@297037173541175296> Yes, we do support Halloween as well. | 17:42 | |
| Nemokosch | now that we are at it | 17:44 | |
| do you know anything about Exports.pm6 being special once upon a time? | |||
| or was the author of HTML::Tag simply forgetful 😅 | |||
| gfldex | No. The only 2 special files are META6.json and Build.pm6 . | 17:45 | |
| Nemokosch | this module was oldish, 2017, but I also started thinking that maybe it simply got left out of | 17:46 | |
| META6.json by accident | |||
|
21:01
jgaz left
21:13
guifa_ left
21:14
guifa joined
21:18
saint- left
23:12
jaguart left
|
|||