🦋 Welcome to the MAIN() IRC channel of the Raku Programming Language (raku.org). Log available at irclogs.raku.org/raku/live.html . If you're a beginner, you can also check out the #raku-beginner channel! Set by lizmat on 6 September 2022. |
|||
00:00
reportable6 left
00:03
reportable6 joined
00:44
Manifest0 left
01:17
derpydoo joined
01:36
jpn joined
01:41
jpn left
01:53
jgaz left
02:20
tea3po left,
tea3po joined
02:36
tea3po left
02:37
tea3po joined
03:24
jpn joined
03:29
jpn left
04:01
derpydoo left
04:05
xinming left
04:08
xinming joined
04:24
jpn joined
04:28
jpn left
05:01
jpn joined
05:06
jpn left
06:00
reportable6 left
06:01
reportable6 joined,
jpn joined
06:31
jpn left
06:36
jpn joined
06:43
abraxxa joined
07:07
jpn left
07:21
sena_kun joined
07:40
sena_kun left
|
|||
Geth | ecosystem: Demayl++ created pull request #618: remove Email::Valid Sys::IP and Terminal::Size |
07:42 | |
07:44
Manifest0 joined
07:47
zara joined
07:49
jpn joined
07:54
jpn left,
zara left
08:47
jpn joined
08:55
Sgeo left
09:04
abraxxa left
09:21
timo left
|
|||
Geth | ecosystem/main: 38f22680f4 | (Denis Kanchev)++ (committed using GitHub Web editor) | META.list remove Email::Valid Sys::IP and Terminal::Size as they live now in the fez ecosystem (#618) |
09:24 | |
09:48
lizmat left
09:52
lizmat joined
09:54
silug left
|
|||
_________ | m: class A { our enum E <V1 V2>; has E $.E is rw; }; class B { our enum E <V1 V2>; has E $.E is rw; }; A.new(E => B::V1); | 10:00 | |
camelia | Type check failed in assignment to $!E; expected E but got E (E::V1) in block <unit> at <tmp> line 1 |
||
_________ | "expected E but got E" ;D | ||
lizmat just blogged again: dev.to/lizmat/a-practical-example-...kuast-18jk | 10:01 | ||
10:07
timo joined
10:13
thundergnat joined
|
|||
thundergnat | lizmat++Â BTWÂ instalment -> installment, RakUAST -> RakuAST | 10:14 | |
10:14
thundergnat left
|
|||
lizmat | instalment is UK spelling, installment is US | 10:14 | |
guifa | Brits hate Ls, Americans hate Us | 10:15 | |
lizmat | anyways, fixed: thundergnat++ | 10:16 | |
timo | we can use RakUAST for any user-added ast bits, kind of like the linux subsystems "uinput" :D | 10:17 | |
lizmat | that's what macros are all about, no? | ||
timo | i guess so yeah | 10:18 | |
10:46
squashable6 left
10:48
squashable6 joined
10:53
silug joined
|
|||
Voldenet | it would be nice if `use RakuAST::Regex` could be done, so `CharClassEnumerationElement::Character, Assertion::CharClass and CharClassElement::Enumeration` could be directly used | 11:24 | |
lizmat | Voldenet: I think we will see some official and semi-official shortcuts | 11:25 | |
I'm not sure "use RakuAST::Regex" would help: I would be in favour of moving pragmas from "use" to a dedicated such as "pragma foo" and "pragma foo :off" | 11:27 | ||
in fact: in RakuAST, pragmas already have their own class: | 11:29 | ||
m: say Q|use strict|.AST.statements.head | |||
Voldenet | `import RakuAST::Regex as Rx` ;) | ||
camelia | RakuAST::Pragma.new( off => 0, name => "strict" ) |
||
lizmat | Voldenet: you can already do that with a constant? | ||
my constant Rx = RakuAST::Regex ?? | |||
Voldenet | neat | 11:31 | |
in that case I'm guessing the code can be massively shortened | 11:32 | ||
being able to import whole RakuAST and RakuAST::Regex would be easier to work with locally, but `my constant R = RakuAST; my constant Rx = R::Regex;` would look more pleasant | 11:36 | ||
lizmat: btw pre-cursor -> precursor | 11:38 | ||
lizmat | thanks, fixed | 11:39 | |
11:41
euandreh joined
11:59
cm_ joined,
cm left,
cm_ is now known as cm
12:00
reportable6 left
12:02
reportable6 joined
12:12
jpn left
12:46
PipStuart left
12:48
jpn joined
12:52
jpn left
13:05
jpn joined
14:05
notable6 left,
coverable6 left,
statisfiable6 left,
bloatable6 left,
sourceable6 left,
committable6 left,
quotable6 left,
nativecallable6 left,
benchable6 left,
unicodable6 left,
greppable6 left,
evalable6 left,
linkable6 left,
releasable6 left,
reportable6 left,
tellable6 left,
squashable6 left,
shareable6 left,
bisectable6 left,
tellable6 joined,
squashable6 joined
14:06
releasable6 joined,
linkable6 joined,
notable6 joined,
quotable6 joined
14:07
committable6 joined,
bloatable6 joined,
greppable6 joined,
statisfiable6 joined,
reportable6 joined,
unicodable6 joined,
nativecallable6 joined,
evalable6 joined,
benchable6 joined
14:08
shareable6 joined,
sourceable6 joined,
bisectable6 joined,
coverable6 joined
14:19
tea3po left,
tea3po joined
14:22
teatwo joined
14:23
guifa_ joined
14:25
tea3po left,
guifa left
14:55
codesections joined
|
|||
jdv | lizmat: cool rakuast posts | 14:56 | |
15:14
Xliff_ joined
15:16
codesections left,
codesections joined
|
|||
Xliff_ | elcaro: It may not be exactly what you want, but you could always .encode the Str when you get it. | 15:16 | |
How difficult would it be to implement COMPOSE? | 15:19 | ||
15:20
Dan1968 joined,
Dan1968 left
|
|||
Xliff_ | I am currently hacking away with a .Init method, but it would be nice to have a formal mechanism to properly incorporate roles into an object. Consider: role A { has $.a; method value { ... }; submethod COMPOSE { $!a = self.value / 2; }; }; class B { has $.b is built; method value { $.b }; }; my $b.new(b => 32); $b does A; | 15:22 | |
15:22
Sgeo joined
15:35
teatwo left,
teatwo joined
15:52
teatwo left,
teatwo joined
15:53
teatwo left,
teatwo joined
16:56
jpn left
17:13
sena_kun joined
17:24
jpn joined
|
|||
Xliff | Is there an idomatic way of saying I would like an array containing the 100 values between 5 and 255? | 17:39 | |
I think this would be analogous to the Javascript map function. | 17:40 | ||
lizmat | which 100 values between 5 and 255 ? | 17:41 | |
that'd be 201 values ? | |||
Xliff | Or not... | ||
lizmat | well, 199 maybe then ? | ||
Xliff | No. Take 5..255 and get an array of 100 values between the two representing the stops. | ||
lizmat | (5..255).pick(100) | 17:42 | |
Xliff | Nope. That's random. I want a linear function. | ||
And my brain just doesn't want to Math right now. | |||
lizmat | I don't understand the question then | 17:43 | |
Xliff | m: my $s = 250 / 100; say (5..255) »+»$s | ||
camelia | (7.5 8.5 9.5 10.5 11.5 12.5 13.5 14.5 15.5 16.5 17.5 18.5 19.5 20.5 21.5 22.5 23.5 24.5 25.5 26.5 27.5 28.5 29.5 30.5 31.5 32.5 33.5 34.5 35.5 36.5 37.5 38.5 39.5 40.5 41.5 42.5 43.5 44.5 45.5 46.5 47.5 48.5 49.5 50.5 51.5 52.5 53.5 54.5 55.5 56.5 57.… | ||
Xliff | my $s = 250 / 100; say 5, |(6..255) »+» $s | 17:45 | |
evalable6 | 5(8.5 9.5 10.5 11.5 12.5 13.5 14.5 15.5 16.5 17… | ||
Xliff, Full output: gist.github.com/596e553a291fc12eed...907916c6a7 | |||
Xliff | my $s = 250 / 100; say |5, |(6..255) »+» $s | ||
evalable6 | 5(8.5 9.5 10.5 11.5 12.5 13.5 14.5 15.5 16.5 17… | ||
Xliff, Full output: gist.github.com/1694c39b0d62560f48...cc9ee6ca3d | |||
Xliff | Hrm. | ||
my $s = 250 / 100; my @a = (5); @a.append: |(6..255) »+» $s; @a.gist.say | |||
evalable6 | [5 8.5 9.5 10.5 11.5 12.5 13.5 14.5 15.5 16.5 1… | ||
Xliff, Full output: gist.github.com/47f4663954b1369042...002bdaa7c5 | |||
Xliff | my $s = 100 / 249; my @a = (5); @a.append: |(6..255) »+» $s; @a.gist.say | 17:49 | |
evalable6 | [5 6.401606 7.401606 8.401606 9.401606 10.40160… | ||
Xliff, Full output: gist.github.com/d821a78e61d24ca87b...029088748e | |||
18:00
reportable6 left
18:02
reportable6 joined
|
|||
Xliff | (0..99).map( * * 100) » | 18:05 | |
m: sub linear ($p, $s, $x = 0) { (0..$p).map( * * $s ) »+» $x }; linear(100, 2.5, 5).gist.say | 18:08 | ||
camelia | (5 7.5 10 12.5 15 17.5 20 22.5 25 27.5 30 32.5 35 37.5 40 42.5 45 47.5 50 52.5 55 57.5 60 62.5 65 67.5 70 72.5 75 77.5 80 82.5 85 87.5 90 92.5 95 97.5 100 102.5 105 107.5 110 112.5 115 117.5 120 122.5 125 127.5 130 132.5 135 137.5 140 142.5 145 147.5 … | ||
Xliff | sub linear ($r, $p) { $r.map( * * $r.max / $p) »+» $r.min }; (5..255).linear(100).gist.say | 18:12 | |
m: sub llinear ($r, $p) { $r.map( * * $r.max / $p) »+» $r.min }; (5..255).linear(100).gist.say | 18:13 | ||
camelia | No such method 'linear' for invocant of type 'Range'. Did you mean 'lines'? in block <unit> at <tmp> line 1 |
||
Xliff | m: sub linear ($r, $p) { $r.map( * * $r.max / $p) »+» $r.min }; (5..255).linear(100).gist.say | ||
camelia | No such method 'linear' for invocant of type 'Range'. Did you mean 'lines'? in block <unit> at <tmp> line 1 |
||
Xliff | m: sub linear ($r, $p) { $r.map( * * $r.max / $p) »+» $r.min }; (5..255).&linear(100).gist.say | ||
camelia | (17.75 20.3 22.85 25.4 27.95 30.5 33.05 35.6 38.15 40.7 43.25 45.8 48.35 50.9 53.45 56 58.55 61.1 63.65 66.2 68.75 71.3 73.85 76.4 78.95 81.5 84.05 86.6 89.15 91.7 94.25 96.8 99.35 101.9 104.45 107 109.55 112.1 114.65 117.2 119.75 122.3 124.85 127.4 1… | ||
Xliff | m: sub linear ($r, $p) { $r.map( * * ($r.max - $r.min) / $p) »+» $r.min }; (5..255).&linear(100).gist.say | ||
camelia | (17.5 20 22.5 25 27.5 30 32.5 35 37.5 40 42.5 45 47.5 50 52.5 55 57.5 60 62.5 65 67.5 70 72.5 75 77.5 80 82.5 85 87.5 90 92.5 95 97.5 100 102.5 105 107.5 110 112.5 115 117.5 120 122.5 125 127.5 130 132.5 135 137.5 140 142.5 145 147.5 150 152.5 155 157… | ||
Xliff | Why won't my brain MATH? | ||
18:13
manu__ joined,
eseyman left
18:14
manu__ is now known as eseyman
|
|||
Xliff | m: sub linear ($r, $p) { $r.map( * * $r.max / ($r.max - $r.min) ) »+» $r.min }; (5..255).&linear(100).gist.say | 18:14 | |
camelia | (10.1 11.12 12.14 13.16 14.18 15.2 16.22 17.24 18.26 19.28 20.3 21.32 22.34 23.36 24.38 25.4 26.42 27.44 28.46 29.48 30.5 31.52 32.54 33.56 34.58 35.6 36.62 37.64 38.66 39.68 40.7 41.72 42.74 43.76 44.78 45.8 46.82 47.84 48.86 49.88 50.9 51.92 52.94 5… | ||
Xliff | m: sub linear ($r, $p) { $r.map( * * ($r.max - $r.min) / $p.pred ) »+» $r.min }; (5..255).&linear(100).gist.say | 18:16 | |
camelia | (17.626263 20.151515 22.676768 25.20202 27.727273 30.252525 32.777778 35.30303 37.828283 40.353535 42.878788 45.40404 47.929293 50.454545 52.979798 55.505051 58.030303 60.555556 63.080808 65.606061 68.131313 70.656566 73.181818 75.707071 78.232323 80.… | ||
Xliff | m: sub linear ($r, $p) { $r.map( * * ($r.max - $r.min) / $p.elems ) »+» $r.min }; (5..255).&linear(100).gist.say | ||
camelia | (1255 1505 1755 2005 2255 2505 2755 3005 3255 3505 3755 4005 4255 4505 4755 5005 5255 5505 5755 6005 6255 6505 6755 7005 7255 7505 7755 8005 8255 8505 8755 9005 9255 9505 9755 10005 10255 10505 10755 11005 11255 11505 11755 12005 12255 12505 12755 130… | ||
18:22
jpn left
|
|||
Xliff | sub linear ($r, $p) { my $s = ($r.max - $r.min) / $p.pred; say " {$r.min} / { $s }"; $r.kv.map( -> $k, $v { $k * $s + $r.min }) }; (5..255).&linear(100).gist.say | 18:22 | |
evalable6 | 5 / 2.525253 (5 7.525253 10.050505 12.575758 1… |
||
Xliff, Full output: gist.github.com/3cbe60687e300a8901...a414ca0bdd | |||
Xliff | lizmat: ^^ | ||
Nahita | that goes until 636.313131, shouldn't it stop at 255 or around 255 | 18:26 | |
kv seems to be the responsible | 18:27 | ||
Xliff | Hrm. Still not right then. # Nahita | 18:30 | |
sub linear ($r, $p) { my $s = ($r.max - $r.min) / $p.pred; say " {$r.min} / { $s }"; $r.kv.map( -> $k, $v { $k * $s + $r.min }) }; (5..255).&linear(100).elems.gist.say | |||
evalable6 | 5 / 2.525253 251 |
||
Xliff | sub linear ($r, $p) { my $s = ($r.max - $r.min) / $p.pred; say " {$r.min} / { $s }"; $r.kv.map( -> $k, $v { $k * $s + $r.min }) [^$p] }; (5..255).&linear(100).gist.say | ||
sub linear ($r, $p) { my $s = ($r.max - $r.min) / $p.pred; say " {$r.min} / { $s }"; $r.kv.map( -> $k, $v { $k * $s + $r.min })[^$p] }; (5..255).&linear(100).gist.say | 18:31 | ||
evalable6 | 5 / 2.525253 (5 7.525253 10.050505 12.575758 1… |
||
Xliff, Full output: gist.github.com/c7bd4df734286b62d0...791454f01b | |||
Xliff | sub linear ($r, $p) { my $s = ($r.max - $r.min) / $p.pred; say " {$r.min} / { $s }"; $r.kv.map( -> $k, $v { $k * $s + $r.min })[^$p] }; (5..255).&linear(100).tail.say | ||
evalable6 | 5 / 2.525253 255 |
||
Xliff | There. | ||
Yay! I've mathed. Now I can nap. | 18:32 | ||
18:36
derpydoo joined
|
|||
librasteve | m: sub linear( @a, \c ) { my ( \s, \f ) = |@a.bounds; s, * + (f - s) / c ... f }; say linear (5..255),100 | 18:50 | |
18:50
jpn joined
|
|||
Raku eval | (5 7.5 10 12.5 15 17.5 20 22.5 25 27.5 30 32.5 35 37.5 40 42.5 45 47.5 50 52.5 55 57.5 60 62.5 65 67.5 70 72.5 75 77.5 80 82.5 85 87.5 90 92.5 95 97.5 100 102.5 105 107.5 110 112.5 115 117.5 120 122.5 125 127.5 130 132.5 135 137.5 140 142.5 145 147.5 150 152.5 155 157.5 160 162.5 165 167.5 170 172.5 175 177.5 180 182.5 185 187.5 190 192.5 195 197.5 200 202.5 205 207.5 210 212.5 215 217.5 220 222.5 225 227.5 230 | 18:51 | |
232.5 235 237.5 240 242.5 245 247.5 250 252.5 ...) | |||
18:56
jpn left
|
|||
tbrowder__ | lizmat: fyi, deepmap solved all my "multiply all values by a common factor problem" even for a hash of hashes! | 19:04 | |
tellable6 | 2023-05-25T17:59:05Z #raku <uzl[m]> tbrowder__ Thanks for the heads up! What's the repo mentioned? | ||
Xliff | librasteve++ # Thanks! | 19:07 | |
tbrowder__ | uzl[m]: the repo is at the publisher's github site and is in the booki have to find it. i'll fork it if i haven't and let you know. | 19:09 | |
19:12
notna joined
19:14
jpn joined
|
|||
tbrowder__ | uzl[m]: it's at JJ's public site at 'github.com/JJ/perl6em' | 19:15 | |
19:20
euandreh left
19:22
euandreh joined
19:28
emakei joined
19:34
emakei left
19:36
notna left,
squashable6 left
19:37
squashable6 joined
19:39
jpn left
20:16
jpn joined
20:21
jpn left
20:27
rf joined
|
|||
rf | Afternoon folks | 20:27 | |
gfldex | Hi rf! Sorry, we are busy reading lizmat's new blogpost. | 20:45 | |
gfldex .oO( raku -e 'try our $language;' ) | 21:11 | ||
21:17
codesections left
21:31
sena_kun left
21:42
codesections joined
22:04
jpn joined
22:09
jpn left
|
|||
Geth | advent: tbrowder++ created pull request #106: prep for the upcoming season |
22:41 | |
elcaro | I think raku.land has stopped rebuilding. Or at least. I updated a module yesterday and it's still not there. | 22:46 | |
tbrowder__ | gfldex: which post? monday's weekly? or? | 23:00 | |
gfldex | dev.to/lizmat/a-practical-example-...kuast-18jk | ||
23:09
linkable6 left,
evalable6 left
23:12
evalable6 joined,
linkable6 joined
23:34
zara joined
23:40
zara left
23:42
Manifest0 left
23:52
jpn joined
23:58
jpn left
|