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. |
|||
02:49
MasterDuke left
03:00
MasterDuke joined
04:32
MasterDuke left
06:24
CIAvash joined
06:38
CIAvash left
07:20
CIAvash joined
07:33
CIAvash left
13:08
jgaz joined
|
|||
lizmat | and yet another Rakudo Weekly News hits the Net: rakudoweekly.blog/2024/08/26/2024-...ro-💍-htmx/ | 13:29 | |
jgaz | Shouldn't `raku -e 'say "AA".split("").elems'` agree with `raku -e 'say "AA".chars'`? The former returns `4` the later the expected `2`. | 13:46 | |
lizmat | m: dd say "AA".split("") | 13:50 | |
camelia | ( A A ) Bool::True |
||
lizmat | m: dd "AA".split("") | ||
camelia | ("", "A", "A", "").Seq | ||
lizmat | when you split on the empty string, there's a boundary at the start and at the end as well | 13:51 | |
if you just want the separate graphemes, use "comb" | |||
m: dd "AA".comb | |||
camelia | ("A", "A").Seq | ||
jgaz | lizmat, What is the use case for the distinction? | 13:53 | |
lizmat | .oO( the use case is in the eye of the beholder ) |
13:54 | |
jgaz | Okay | ||
lizmat | but seriously: .comb will give you all graphemes, if you want to look at them | ||
but .comb is more general | 13:55 | ||
m: dd "foobarbaz".comb(3) | |||
camelia | ("foo", "bar", "baz").Seq | ||
lizmat | m: dd "foobarbaz".comb(/ (\w) $0 /) # two consecutive chars | 13:56 | |
camelia | ("oo",).Seq | ||
lizmat | it all depends on what you want to achieve | ||
where .comb focuses on the things you want to obtain, and .split focuses on where to split | 13:57 | ||
jgaz | Okay, I follow the difference in perspective. | 13:59 | |
I feel like an idiot for asking this, because I used to know how and it's escaping me, but how do I convert two equal length arrays into a hash? I thought it was `Z` but I can't associatively index into the results of `@a1 Z @a2`. | 14:01 | ||
nahita3882 | Z returns a Seq, so you cannot directly associatively-index its result. But you can zipWith => and %(...) it to get a hash from array 1 to 2 | 14:13 | |
i.e., %(@a1 Z=> @a2) | 14:14 | ||
also (.comb is better for sure but) there is :skip-empty for Str.split to not give you the "extra"s there, i.e., "AA".split("", :skip-empty) eqv ("A", "A").Seq holds | 14:15 | ||
jgaz | nahita2882, okay, so I was only so far wrong. | 14:27 | |
I'll give `Z=>` a try. | 14:28 | ||
nahita3882 So far so good with `%(@a1 Z=> @a2)<foo>`. Thanks for the help. | 15:05 | ||
scullucs | Is there an IO::Path (or something) method to obtain file/dir permissions? | 20:18 | |
ab5tract | m: “/tmp/foo”.IO.spurt(“existing”); dd “/tmp/foo”.IO.rw | 20:26 | |
camelia | Bool::True | ||
ab5tract | m: “/tmp/foo”.IO.spurt(“existing”); dd “/tmp/foo”.IO.mode | 20:27 | |
camelia | IntStr.new(420, "0644") | ||
ab5tract | ^^ scullucs | ||
scullucs | Dang! Some days I'm more stupid than usual. A simple search for "permission" in the IO::Path doc page (which I was skimming) would have found it. | 20:31 | |
Thanks 🙂 | |||
ab5tract | Not to worry. I find that allomorph interesting.. +420, ~”0644” | 20:35 | |
librasteve | The mode is correct. 644 is an octal representation, which is 420 in decimal. <=== just found this by googling ... didn't realise that modes are octal en.wikipedia.org/wiki/File-system_...c_notation | 20:39 | |
scullucs | They're usually represented in octal to make them easier to read. | 20:40 | |
*to interpret. | |||
ab5tract | Ah, yeah that makes sense. Forgot that about octal | ||
But it makes 0777 as max permissions make sense | 20:41 | ||
librasteve | maybe there is a better allomorph like `OctStr.new(0o644,'-rw-r--r--') ;-) | 20:43 | |
scullucs | You can go higher (well, in unix anyway, dunno about windows): e.g. 07777 (The first 7 is sticky bit(1) + set group ID on execution(2) + set user ID on execution(4). | 20:46 | |
librasteve | .oO | 20:47 | |
scullucs | Er, 0o7777. | 20:48 | |
ab5tract | That’s not “higher”, just longer :) | 21:01 | |
librasteve | fwiw I think that this «IntStr.new(420, "0644")» is a great example of the value of allomorphs - in this case to continue to carry the semantic meaning of the permissions setting | 21:03 | |
21:04
jgaz left
|
|||
&afk | 21:04 | ||
lucs | ab5tract: For some values of "higher", sure :) | 21:11 |