00:25
getimiskon left
|
|||
gfldex | m: say my $hey-raku-what-kind-of-problems-can-i-solve-with-you; | 01:22 | |
m:``` | 01:30 | ||
sub postfix:<?>(\p) { p } | |||
say my $hey-raku-what-kind-of-problems-can-i-solve-with-you?; | |||
``` | |||
I will be damned if I can't put that into a blog post. :) | 01:31 | ||
02:57
mjgardner left
02:58
mjgardner joined
|
|||
riffraff | hey folks, I'm playing with grammars, and I have a problem: I want to match a pascal-style string, where the length of the string is an int at the prefix, e.g. 1a 3abc 5abcde. I think I could do by defining | 08:03 | |
a rule that takes a parameter e.g. ``` grammar Pascal { | 08:05 | ||
token TOP { <length><payload($<length>)> } | |||
token length { <[0..9]> } | |||
token payload($length) { 'x' x { $length.Int } } | |||
} | |||
``` | |||
but I always seem to ge Nil as $length in <payload > | |||
did I imagine this syntax? | |||
a rule that takes a parameter e.g. ``` grammar Pascal { | |||
token TOP { <length><payload($<length>)> } | |||
token length { <[0..9]> } | |||
token payload($length) { 'x' x { $length.Int } } | |||
} | |||
``` | |||
but I always seem to get Nil as $length in <payload > | |||
hey folks, I'm playing with grammars, and I have a problem: I want to match a pascal-style string, where the length of the string is an int at the prefix, e.g. 1a 3abc 5abcde. I think I could do this by defining | |||
Nemokosch | in Pascal? | 09:15 | |
I've never seen anything like this in Pascal | |||
riffraff | AFAIR it was the way strings were represented, with prefix length, rather than being null terminated like in C | 09:29 | |
stackoverflow.com/questions/250689...s#25079998 | 09:30 | ||
lakmatiol | The issue afaik is that at the time you are trying to do the call, $/ is unset | 09:50 | |
Try <payload({$<length>})> | 09:51 | ||
Nemokosch | represented internally, not in the language though | 10:25 | |
riffraff | sure | ||
lakmatiol | is there a way to pass a factory to `is default(BagHash.new)` for example. If you give it a sub, it just calls the sub, but this way all defaults share the same BagHash | 12:25 | |
Nemokosch | are you going to mutate the default value? | 12:35 | |
lakmatiol | yes | ||
Nemokosch | why? | ||
lakmatiol | in this specific example, I need an array which contains more arrays | 12:38 | |
i eventually figured out you can just the `:U` variants of .push etc, but it would be nice to be able to set a default | 12:40 | ||
Nemokosch | default function argument or default type value? | ||
lakmatiol | default type value | 12:52 | |
sth like `my @a is default([])` | |||
sth like `my @a is default([]);` | |||
Nemokosch | I don't know a language that has mutability and this would work | 13:00 | |
C in a way | |||
lakmatiol | python has a defaultdict which takes a function that produces the default values, and I believe julia has a similar features with its macros | 13:02 | |
python has a defaultdict which takes a function that produces the default values, and I believe julia has a similar feature with its macros | |||
Nemokosch | well, that's not a part of the language | 13:03 | |
one could implement a defaultdict in many languages | 13:04 | ||
maybe even in Java these days | |||
lakmatiol | hmm, yeah, seems is default can't do this | 13:05 | |
well, IG just handrolling a defaultdict is the way to go | |||
Nemokosch | > Sets the default value with which a variable is initialized, and to which it is reset when Nil is assigned to it. Trait arguments are evaluated at compile time. Closures won't do what you expect: they are stored as is and need to be called by hand. | 13:06 | |
sounds like a rip | |||
13:33
TempIRCLogger left
13:37
TempIRCLogger joined
13:41
TempIRCLogger left,
TempIRCLogger joined
13:45
TempIRCLogger left
13:46
TempIRCLogger joined
|
|||
shift-eleven | Is there no check if a string is uppercase, or a character, or would I have to use a regex? | 15:23 | |
well it seems using the `<:Lu>` regex pattern is my best bet and works well | 15:50 | ||
gfldex | m: say "Abc".&{ .uc eq .Str }; | 16:55 | |
shift-eleven | ah alright, thanks! | 17:05 | |
18:26
getimiskon joined
|