00:00 discord-raku-bot left, colemanx left, discord-raku-bot joined 00:03 getimiskon left 00:05 getimiskon joined 00:51 parv joined, parv left, parv joined 01:00 colemanx joined
colemanx How do I use run to spawn a subprocess in a particular working directory? 01:06
ah i did it :) my $p = run 'ls', cwd => '/tmp'; 01:11
01:16 getimiskon left 08:47 dakkar joined 14:32 A26F64 joined 15:14 riffraff joined
riffraff hey everyone, forgive me for the dumb question, but I've just started to play with RakuĀ :) . 15:37
I was wondering, is there a way to apply an infix operator to all pairs in a list of pairs, other than explicitly using .map ?
I have this
(1,2,3,4).rotor(2 => 0).map: {$_[0] +$_[1]}
I can avoid unpacking $_ with reduce,
...map: {[+] $_}
but I think there should be a way to compress the block with something like
....map: infix:<+>
but I can't find the appropriate incantation :)
I also thought I could use
....map: * + *
but the pair is not "unpacked" and so this doesn't work :/
lizmat m: dd (1,2,3,4).rotor(2 => 0).map: {$_[0] +$_[1]} 15:41
camelia (3, 7).Seq
lizmat m: dd (1,2,3,4).rotor(2).map: {$_[0] +$_[1]}
camelia (3, 7).Seq
lizmat m: dd (1,2,3,4).rotor(2)>>.sum
camelia (3, 7)
lizmat riffraff ^^
riffraff right, but that works because of the list.sum method, it wouldn't work with > or % for example (I think?) 15:43
lizmat ah, indeed
15:44 A26F64 left
lizmat m: dd (1,2,3,4).rotor(2)>>.&infix:<%> 15:44
camelia ($(1, 2), $(3, 4))
lizmat m: dd (1,2,3,4).rotor(2)>>.Slip>>.&infix:<%> 15:45
camelia (1, 2, 3, 4)
lizmat mmeh
m: sub doit(@a) { [%] @a }; dd (1,2,3,4).rotor(2)>>.&doit 15:46
camelia Type check failed in binding to parameter '@a'; expected Positional but got Int (1)
in sub doit at <tmp> line 1
in block <unit> at <tmp> line 1
lizmat meh
Morfent m:``` 16:58
say &infix:<+>.signature;
say &infix:<%>.signature;
```
m:``` 16:59
say (1,2,3,4).map(&infix:<%>)
```
17:00 riffraff left
oh pairs 17:04
17:41 dakkar left
qorg11 Equivalent to write something like while((c = read(fd, buf, 256)) > 0 ) in raku? 17:42
I did while $c > 0 {
$c = cread(...);
}
lizmat "file".IO.open(:bin).read(256) 17:45
?
my $h = "1".IO.open(:bin); while $h.read(256) -> $buf { say $buf.elems } 17:47
?
qorg11 Well i didn't mean reading a file but setting a variable inside the while loop and evaluating it 17:48
Like you can do while((readline("> ")) != NULL) 17:49
lizmat my $c = 42; while $c { ... } 17:52
??
my $c = 42; while $c != 666 { ... }
qorg11 Can't i just use the return value from a function as the condition? 18:29
And assign the return value (inside the condition) as the thing to evaluate?
Yeah just figured it out 18:32
ls.qorg11.net/files/QEeuRmhn/-.txt
ls.qorg11.net/files/piPpWJlR/-.txt that especifially 18:33
lizmat True < 10 ? 19:00
guess that's true
Nemokosch what is this good for? 19:04
SmokeMachine m: dd (1,2,3,4).rotor(2).map: -> ($a, $b) { $a + $b } 19:44
camelia (3, 7).Seq