|
🦋 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:31
lichtkind left
01:35
hulk joined
01:36
kylese left
01:37
RandalSchwartz joined,
RandalSchwartz left
02:15
hulk left,
kylese joined
03:50
stanrifkin joined
03:52
stanrifkin_ left
|
|||
| disbot8 | <simon_sibl> is there a more efficient way to do this ? | 04:39 | |
| <simon_sibl> my @jobs = @str_jobs.map({my %h; %h<title submit process priority> = .split(','); %h}); | |||
| <simon_sibl> basically splitting a string by "," and add the field in a hashmap | |||
|
05:09
Guest81 joined
05:10
Guest81 left
05:36
bd3i left,
bd3i joined
05:39
Aedil joined
05:41
kylese left
05:42
kylese joined
07:16
Aedil left
07:21
japhb left,
japhb joined
07:28
librasteve_ joined
|
|||
| disbot8 | <librasteve> my first idea is to make a sub vv | 07:28 | |
| librasteve_ | www.irccloud.com/pastebin/wg6riNEj | 07:31 | |
| tellable6 | 2025-08-29T23:18:53Z #raku <wayland76> librasteve Where should I have logged this ticket? github.com/Raku/doc-website/issues/463 | ||
|
07:32
japhb left
07:33
japhb joined
|
|||
| disbot8 | <librasteve> then I put it back together like this (since map takes a Callable anyway)... | 07:34 | |
| <librasteve> my @jobs = @str_jobs.map: { <title submit process priority> Z=> .split(',') }; | |||
| <librasteve> oops - need %() to make the Hash | 07:35 | ||
| <librasteve> my @jobs = @str_jobs.map: { %( <title submit process priority> Z=> .split(',') ) }; | |||
| Voldenet | simon_sibl: don't make a hash in the first place, use the array directly | 07:36 | |
| if by efficient you mean "fast" | |||
| disbot8 | <simon_sibl> looks good thanks ! indeed cleaner xD | 07:46 | |
| <simon_sibl> I meant a cleaner way, easier to read xD 🙏 | 07:47 | ||
| <simon_sibl> array are more efficient but not easy to follow in the code | |||
|
07:50
human-blip left
07:52
human-blip joined
08:00
Sgeo_ joined
08:01
hudo_ joined
|
|||
| Voldenet | heh, not necessarily, there are ways around it | 08:01 | |
| you could make a header first and then return object that would access header first and array later | 08:02 | ||
|
08:03
phogg` joined,
kjp left,
avar left,
phogg left,
jdv left,
hudo__ left
08:04
Sgeo left,
broquaint left
08:05
broquaint joined
08:06
kjp joined
08:07
rba_ joined,
rba left,
rba_ is now known as rba
|
|||
| Voldenet | m: my @str_jobs = <aaa,2,proc1,high bbb,3,proc2,low>; sub make-header(*@f) { my %i = @f.antipairs; class X { has $.v; method AT-KEY($k) { $!v[%i{$k}] }}; return -> *@v { X.new(:@v) } }; my &make-job = make-header <title submit process priority>; my @jobs = @str_jobs.map: { make-job(.split(',')) }; .<title>.say for @jobs; | 08:09 | |
| camelia | aaa bbb |
||
|
08:10
avar joined
|
|||
| Voldenet | it may seem long, but array to job mapping is not that long | 08:10 | |
| > my &make-job = make-header <title submit process priority>; my @jobs = @str_jobs.map: { make-job(.split(',')) }; | |||
|
08:10
jdv joined
|
|||
| Voldenet | %(… Z=> …) solution is a lot easier to read though | 08:11 | |
| you could get it shorter | 08:13 | ||
| my @jobs = @str_jobs.map: { %=<title submit process priority> Z .split(',') }; | |||
| eh, nevermind, I've tested it and it doesn't work as I hoped | 08:15 | ||
| my @jobs = @str_jobs.map: { hash <title submit process priority> Z .split(',') }; | 08:18 | ||
| disbot8 | <librasteve> ok - I have added the US dollar Currency to Physics::Unit but tbh I think the first pass is suboptimal ... it uses sub postfix:<$> (Real:D $x) is export { do-postfix($x,'$') } so you can currently type 3.00$ --- just like you can type 4.2l BUT boy would that be nicer as $3.00 | 09:14 | |
| <librasteve> at first I was hopeful that I could just go sub prefix:<$> (Real:D $x)... with the idea that there is no valid raku (afaik) that combines the $ followed by a number literal - this didn't wok - not suprising really since $ is used for quite a lot of stuff already | 09:16 | ||
| lizmat | librasteve_: the problem is that $1 is valid syntax for $/[1] | 09:17 | |
| disbot8 | <librasteve> is this the sort of thing that RakuAST would help with? any thoughts on how to make this workable? | ||
| <librasteve> ah, I had forgotten match capture deref | 09:18 | ||
| <librasteve> just have to stick to € | 09:19 | ||
| lizmat | perphaps US$ CAN$ AUS$ ? | 09:20 | |
| as prefixes | |||
| m: sub prefix:<US$>($a) { say $a }; US$ 42 | 09:21 | ||
| camelia | 42 | ||
| lizmat | seems to work ? | ||
| m: sub prefix:<US$>($a) { say $a }; US$42 # works even without space inbetween | |||
| camelia | 42 | ||
| disbot8 | <librasteve> yeah - its just that typing US$ is a bit more work - let me mull | 09:23 | |
| lizmat | I guess, in this geopolitical situation, it's good to be specific :-) | 09:24 | |
| disbot8 | <librasteve> yeah - there is actually a need to distinguish when eg doing currency conversions | 09:25 | |
| Voldenet | how about using iso codes for currencies | 09:27 | |
| lizmat | m: sub prefix:<USD>($a) { say $a }; USD42 | 09:28 | |
| camelia | ===SORRY!=== Error while compiling <tmp> Undeclared name: USD42 used at line 1 |
||
| lizmat | m: sub prefix:<USD>($a) { say $a }; USD 42 | ||
| camelia | 42 | ||
| lizmat | that would require spacing :-( | ||
| disbot8 | <librasteve> bear in mind that there are 2 ways to make a unit --- the general way is ^<value unit> (ie the ^ caret as prefix following by some quoting) and the shorthand way | 09:30 | |
|
09:30
Geth left
|
|||
| disbot8 | <librasteve> so 4.2l is another way to spell ^<4.2 l> or ^<4.2 liters> | 09:30 | |
| Voldenet | ah, it's this kind of problem, imo using codes is necessary | 09:31 | |
|
09:31
Geth joined
|
|||
| Voldenet | because some countries have multiple currencies | 09:31 | |
| disbot8 | <librasteve> I will use ISOP as the internal definition - like this Currency: - {names: [USD, US$, $, dollar], defn: 'USD' } | ||
| <librasteve> (sorry YAML alert) | 09:32 | ||
| Voldenet | Venezuela has VEB (old) VED and VES | ||
| disbot8 | <librasteve> so anything in the names list will match in the general ^ syntax - this question is what is the subset of shorthands to export as prefix/postfix | 09:33 | |
| <librasteve> Voldenet++ since I am thinking MAY be nice to auto select the home currency (ISO) from the locale [thats likely not to be in the first release] | 09:34 | ||
| Voldenet | some countries (like Poland) use postfix notation, so "15zł" is "PLN 15" | 09:35 | |
| otoh eur would use prefix notation | |||
| m: sub prefix:<€>($n){ }; €15 | |||
| camelia | ( no output ) | ||
| disbot8 | <librasteve> yes, so we can make the shorthands be quite colloquial | ||
| Voldenet | and it works, ootb, in fact $ is special | ||
| disbot8 | <librasteve> (sadly can go with $) | 09:36 | |
| Voldenet | m: sub prefix:<$>($n){ }; $20 | ||
| camelia | ( no output ) | ||
| Voldenet | …huh? | ||
| disbot8 | <librasteve> I mean cant go without $ | ||
| lizmat | Voldenet: $20 parses as $/[20] | 09:37 | |
| Voldenet | m: sub prefix:<$>($n){ say "ah, I see" }; $20 | ||
| camelia | ( no output ) | ||
| Voldenet | Right, of course | ||
| lizmat | ﹩$💲 # or use one of the other dollar signs | ||
| but that would just be even more difficult typing :-) | 09:38 | ||
| Voldenet | but then usefulness of that is very limited, I guess | ||
| lizmat | indeed | ||
| disbot8 | <librasteve> nah - this is for fast typing - had enough pain with ♎️ | ||
| <librasteve> chatgpt.com/share/68b41862-f328-80...1c60887009 | 09:39 | ||
| Voldenet | > const prefix = colloquialMap[currency] || currency + "$"; | 09:41 | |
| EUR$ :> | |||
| disbot8 | <librasteve> lol | ||
|
09:44
Sgeo_ left
|
|||
| Voldenet | though it's informative, Intl.NumberFormat in js is pretty amazing and it's built-in | 09:47 | |
| disbot8 | <librasteve> console.log(new Intl.NumberFormat("en-IN").format(number)); // "12,34,567.89" (Indian English) | 09:48 | |
| Voldenet | it seems that € in it uses prefix notation for en-US locale but postfix for de-DE | 09:49 | |
|
09:59
apac joined
10:01
lichtkind joined
10:03
cpli left,
cpli joined
|
|||
| Voldenet | btw, you need currency in js | 10:05 | |
| > console.log(new Intl.NumberFormat("en-IN", { style: 'currency', currency: 'INR' }).format(24)) | |||
| > ₹24.00 | |||
| disbot8 | <librasteve> Its interesting to see that JS is very complete in this regard ... however, since App::Crag got the lizmat treatment, getting a nice, colloquial tool is my current focus - happy to backport to anything like Intl.Number that comes to raku land | 10:06 | |
| <librasteve> thanks for all the feedback... | 10:11 | ||
| Voldenet | the completness in js comes from here github.com/unicode-org/icu/tree/ma.../data/curr | 11:04 | |
| and here… perhaps, I have no idea what these codes mean github.com/unicode-org/icu/blob/ma...cCodes.txt | 11:06 | ||
| lizmat | feels like indices into an array somewhere? | 11:07 | |
| Voldenet | it says on top of some files that they were generated from cldr | 11:08 | |
| that looks useful github.com/unicode-cldr/cldr-numbe...ncies.json | |||
| and not pain to parse too | |||
|
11:09
phogg` left
|
|||
| lizmat | sadly that is for cldr 37, we're at 64 now | 11:11 | |
| *46 | |||
| Voldenet | ah, different repository is more up-to-date github.com/unicode-org/cldr-json/b...ncies.json | 11:13 | |
|
11:18
lichtkind_ joined,
lichtkind left
11:21
phogg joined
11:29
wayland left,
wayland76 joined
12:18
apac left
|
|||
| disbot8 | <simon_sibl> this is god sent: termbin.com/z3f3 | 13:34 | |
| guifa | librasteve: I will eventually be getting around to a currency formatting | 14:02 | |
| you can get the raw data in Intl::CLDR tho | |||
| although I think I might have held off for some reason with putting in the string format for it --- not sure why it's not showing up atm | 14:06 | ||
| but `use Intl::CLDR; cldr<en><numbers><currencies><EUR><symbol>` for instance returns € | 14:07 | ||
| aaah | 14:21 | ||
| cldr<en>.numbers.currency-formats.latin.standard.pattern , although for some reason I'm just getting an empty string back right now. Will check my code | 14:25 | ||
| the result should be though `¤#,##0.00` for standard, and `¤#,##0.00;(¤#,##0.00)` for accounting | 14:26 | ||
| I'll investigate and try to push out an Intl::Format::Currency | 14:33 | ||
| disbot8 | <librasteve> .oO | ||
| <librasteve> guifa: the source link for Intl.CLDR on raku.land is broken (guess this comes from the META6.json) | 14:40 | ||
| <librasteve> github.com/alabamenhu/Intl-CLDR/pull/6 | 14:46 | ||
|
14:51
derpydoo joined
|
|||
| guifa | ugh def some stuff I need to update in there | 14:53 | |
|
14:53
lichtkind_ left
|
|||
| guifa | I've been too involved lately in the C /Obj-C world trying to get UI::HTMLWindow working even better | 14:53 | |
| disbot8 | <librasteve> yeah - btw way I just zef installed Intl::CLDR on my macOS - the issue with 256 file limit did not arise, so I suggest to remove the cary warning in the README ;-) | 14:54 | |
| librasteve_ | s/cary/scary/ | 14:55 | |
| disbot8 | <librasteve> for now, this is all that I need `raku -e 'use Intl::CLDR; cldr<en><numbers><currencies>.say' | 14:57 | |
| guifa | thank the $DEITY | 15:05 | |
| I finally properly forked off | |||
| guifa is learning so much new stuff trying to create the html ui | 15:06 | ||
| a tricky one was getting the dylib executable path. we've deprecated %?RESOURCE<foo>.absolute, but I need such a path for properly calling exec*. And of course, macOS has to be special lol | 15:22 | ||
|
15:58
derpydoo left
16:02
lichtkind joined
16:25
elcaro left,
elcaro joined
16:45
derpydoo joined
17:10
Aedil joined,
apac joined
17:22
librasteve_ left
17:26
derpydoo left
17:55
apac left
18:57
guifa left
19:19
Sgeo joined
19:21
Aedil left
19:31
melezhik joined
|
|||
| tbrowder | hi, how does one get the default srand number for an os? | 20:04 | |
| the docs say the number depends on the os | 20:05 | ||
| ah, maybe this... | 20:06 | ||
| m: say Num.rand | 20:07 | ||
| camelia | Invocant of method 'rand' must be an object instance of type 'Num', not a type object of type 'Num'. Did you forget a '.new'? in block <unit> at <tmp> line 1 |
||
| tbrowder | m: my $n = Num.new; say $n.rand | 20:08 | |
| camelia | 0 | ||
| tbrowder | m: my $n = Num(10000000000000000000).rand | 20:12 | |
| camelia | ( no output ) | ||
| destroycomputers | m: say rand | 20:15 | |
| camelia | 0.9184466250639097 | ||
| tbrowder | m: say (1..69).roll | 20:16 | |
| camelia | 57 | ||
| tbrowder | that's the "ticket" | ||
| i just want some control over the srand, or at least see what the default is | 20:17 | ||
| m: say (1..69).roll; say (1..69).roll | 20:18 | ||
| camelia | 52 19 |
||
| tbrowder | m: for 1..5 {say (1...69).roll} | 20:20 | |
| camelia | 69 54 2 7 58 |
||
| tbrowder | florida powerball is 1+ BILLION usd | 20:21 | |
| draw tomorrow (1 sep) at 2300 EDT | 20:23 | ||
| m: for 1..5 {say (1..69).roll}; say (1..26).roll | 20:24 | ||
| camelia | 5 45 3 6 40 21 |
||
| tbrowder | the "21" at the end is the "power ball" pick | 20:25 | |
| i 💗 raku | 20:26 | ||
| El_Che | . | 21:36 | |
| tellable6 | 2025-08-28T22:16:42Z #raku-dev <jdv> El_Che 2025.08 happened | ||
| El_Che | damn, I need to be more active on irc | 21:37 | |
| I will release tomorrow | |||
|
21:41
melezhik left
|
|||
| tbrowder | [Coke]: see my comment on irc #raku.land | 22:06 | |
| #raku-land that is... | |||
|
22:09
lichtkind left
22:57
stanrifkin left
22:58
wayland76 left
23:25
sftp joined,
sftp left,
sftp joined
23:26
arkiuat joined
|
|||
| arkiuat | tbrowder, for lotto games I think you want .pick, not .roll | 23:26 | |
| [Coke] | tbrowder: I see no comment anywhere. | 23:49 | |