03:19 DarthGandalf left 03:20 DarthGandalf joined 03:32 DarthGandalf left 04:55 sibl joined 05:51 DarthGandalf joined 05:52 sibl left 07:58 Manifest0 joined 07:59 sibl joined 08:06 sibl left 08:28 sibl joined 08:37 sibl left 09:13 leifgunnar left 09:20 leifgunnar joined 11:31 human-blip left 11:35 human-blip joined
disbot4 <simon_sibl> I am aware that may not be my brightest moment and is more on the side of 'clever' than readable but is there a way to have named variable here instead of using .[0] and .[1] like $^ip $^mask even tho thats an array ? 13:30
<simon_sibl> $cidr.split('/', 2).&{min-max-ip(ipv4-to-uint32(.[0]), 0xFFFFFFFF +< (32 - .[1]))}.&{.[0] .. .[1]}.lazy.map(&uint32-to-ipv4);
lizmat turn the Callable into a sub with arguments? 13:32
disbot4 <simon_sibl> like .&(-> [$ip, $mask] {}) ? 13:33
thowe I have a GraphQL interface that limits records it returns to 10000. If I want to take 2 identically structured JSON objects, and merge them, is that something one of the JSON libs will do? Alternatively, if I "from-json" them into Raku objects, is there some shortcut to merge those if they are structured the same, or do I just need to manually do it? 15:46
disbot4 <antononcube> What is the structure? 16:13
<antononcube> @thowe From what I outlined I see several approaches, depending on factors, like, structure, desired speed of computations, etc. 1. Using "Hash::Merge" 2. Using the graph algebra functions of "Graph" 3. Just ask an LLM to do it (or five) 16:16
<antononcube> Mind you, in Raku, 3 can be done programmatically and be reliable. It can be direct manipulation by the LLM or generating corresponding code (Python, or Raku, or whatever.) 16:17
thowe It's a simple structure, it's just that I have to eat it in multiple pieces. I can merge easily by looping through it, I just thought there might be a shortcut I didn't know about. 16:41
17:34 human-blip left 17:36 human-blip joined
disbot4 <comborico> I wonder why the list data structure didn't get its own sigil. Probably an unnecessary addition just for technicality's sake. 18:46
<comborico> docs.raku.org/language/101-basics I don't understand this interaction at $names.sort({ %sets {$_} }). How is $names connected to the hash table completely unaffiliated with it? $name is being sorted according to %sets, but what is connecting $names (a list of names) to %sets (table of names and values)? (I understand a bit about the topical variable -- that isn't the source of my confusion.) 19:49
<comborico> cdn.discordapp.com/attachments/768...f4013&
<librasteve> thowe: I used Hash::Merge recently … suggest you start with that 19:51
<comborico> @names.sort does the sorting alphabetically -- SORT working on the array elements in @names. But now SORT is working on %sets, yet it somehow matches the keys in $set with elements in array @names. 19:53
<librasteve> @comborico hi! thanks for your feedback on 101 …
<librasteve> I am curious, what languages (if any) do you know already?
<comborico> ...common lisp. 19:54
<comborico> But I'm pretty much a novice, though I've studied programming for years. I've studied others. 19:55
<librasteve> oh - that's helpful - thanks1 19:56
<librasteve> on the sigils, Array @ and Hash % are the "fully loaded" types and get the sigil treatment - everything else List, Map, Set, Scalar and so on gets a $ 19:57
<comborico> I see. 20:00
<librasteve> looking at your question $names.sort({ %sets{$_} }) the sort method takes a block {} and sets the topic $_ of the block to the current value, it then uses the result of the block (so in this case the value of %sets for each name item) as the decider as to the sort order 20:02
<comborico> What is current value of the block at the beginning? 20:04
<comborico> Another angle, %sets.sort yields alphabetical order. %matches yields the same. How is even the value being reached to be ordered. I may have to take a break on this. I feel the mental gymnastics taking place in the old noggin'. You wrote that article then? 20:06
<librasteve> not guilty on writing that one! 20:07
<comborico> In the REPL, I tried %sets.sort{$_}, but error. I take it .sort and .sort with an argument of a block behave differently? 20:08
<librasteve> m: my @names = <a b c>; say @names 20:10
<Raku eval> [a b c]
<comborico> Go on.
<librasteve> m: my @names = <a b c>; my %set = a => 3, b => 1, c => 2; say @names.sort({%set{$_}}); 20:11
<Raku eval> (b c a)
<librasteve> so the first item 'a' gives value '3' (from %set{'a'}) 20:12
<librasteve> then comes the second item 'b', value '1', so it gets sorted before 'a' (since 1 is before 2) 20:13
<comborico> 🤔 20:14
<librasteve> sorry I misspelled %sets as %set but hopefully you get the idea that the sort is mapping the value of @names via %sets ;-) 20:15
<comborico> No worries. I have learned that passing the topical variable and block as an argument to SORT will return the paired value of the table. I'm still trying to connect the dots from the sorted table to affecting the order of the array. Might be the deeper end of the pool for me, at this time. 20:18
<librasteve> 👍 20:19
<comborico> When I make corrections on Discord, it doesn't get corrected in IRC, correct?
<librasteve> guess not 20:20
<comborico> Alright. Thanks for your time! I appreciate it. 20:21
thowe libresteve: looking at the data more closely, the parts I need should just be an array... Concatenating an array doesn't need anything special. I thought it was going to be a hash. 21:35