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:05 Kaipei left 05:58 Heptite left 08:10 Kaipei joined 09:00 samebchase left 10:33 Heptite joined 11:44 Kaipei left 11:54 Kaipei joined 12:40 Heptite left 15:03 Heptite joined 16:31 Kaipei left 17:02 ab5tract joined
Anton Antonov What is the Raku equivalent of the Perl5 code `qr/((z|r)|((?<=[ab])(k|m)))$/;` ? 17:14
Nahita `rx/ ( (<[zr]>) || ( <?after <[ab]>> <[km]> ) ) $ /` is one, i think 17:26
`rx/ ( ( <[zr]> ) || ( <?after <[ab]>> <[km]> ) ) $ /` is one, i think
matches at the end of string either 17:28
- z or r
- k or m following a or b
Anton Antonov <@836605577400549436> Thank you! I just found the relevant fragment , and your suggestion helps a lot! 17:31
How about this one : `qr/[^$A][$A]+[^$A]+[$A].*(?<=z)r?$/;` ? 17:37
(I do not expect to ask more of these kind of questions today... 🙂 ) 17:38
Nahita np 18:02
`rx/ <-[$A]> $A+ <-[$A]>+ $A .* <?after 'z'> 'r'? $ /`
matches at the end of string
- anything but $A
- one or more of $A
- one or more of anything but $A
- $A
- anything 0 or more, prefer more as much as possible
- z which is optionally followed by r
lookbehind seems not necessary so can write `'z' 'r'?` there instead i think 18:03
but the original one has it, so... 18:04
Nemokosch is [] not a character set in Perl regexes?
Nahita i wish a regex visualizer, explainer for the Raku regexes
like regex101 has for some dialects 18:05
couldn't find a regexp::debugger kind of thing in modules land either
i thought of attempting one (and failing) but not familiar with Raku regexes sufficiently and not familiar with grammars really 18:06
which i assume is needed for such an application
Anton Antonov <@836605577400549436> Thank you -- you saved me lots of time! 18:13
Nemokosch I wonder which is the harder part - reading regex or writing it? 18:14
Perhaps reading it...
Anton Antonov I think, I can read Raku regexes -- _if_ I already know the expressed functionality. 18:15
To somewhat comment of what <@836605577400549436> said -- I prefer using grammars more. 18:17
19:33 Kaipei joined 21:06 ab5tract left 22:30 Heptite left
stevied what's the easiest/recommended way to constraint check class attributes besides using "where *". I'd like to have nice error messages. Should I just use "submethod BUILD" or is there a better way? 22:51
Nemokosch > to constraint check class attributes 22:54
could you please reiterate?
stevied yeah, let's say I want to make sure a file passed in exists and is readable 23:10
yeah, let's say I want to make sure a file string passed in to the new function exists and is readable as an IO object 23:11
Nemokosch I'm tempted to say just create a fallback multi candidate 23:14
Not a particularly original thought I guess but it's cheap at least
stevied I've been playing around to see if I could get trait_mod to work: `has Str:D $.file is checked = '';` 23:16
and then `multi sub trait_mod:<is>(Attribute:D $r, :$checked)`
but can't seem to get it to work
Nemokosch even if you write `:$checked!` ? 23:17
stevied I want to run file tests and maybe check the contents of the file to make sure it's legit and throw an error message if it isn't 23:19
I can't seem to get at the contents of $.file in the `trait_mod()` sub
heretofore I've done this in the constructor methods, but I'd like to try to find a more elegant solution 23:20
Nemokosch pfff, clueless 23:22
but this doesn't sound much like a type check in the classic sense, at least
stevied no, I'm not just checking to see if it's an Int or something 23:23
these are "constraint checks" from what I gather
Nemokosch maybe there is something better than the "failed constraint" Failure and we just don't know about it <:cameliathink:897316667653247057> 23:25
23:40 Heptite joined 23:59 kjp left