This channel is intended for people just starting with the Raku Programming Language ( Logs are available at
Set by lizmat on 8 June 2022.
02:17 tea3po left 02:18 tea3po joined 04:37 thowe left 08:08 habere-et-disper joined 08:12 dakkar joined
holmdunc and the confusing thing on the JS side is that it has Maps too: 09:48
lizmat that'd be in Raku 09:54
10:09 habere-et-disper left
Nemokosch well, Map is more of a "modernism" in JS 10:15
holmdunc Objects were Good Enough for the first 20 years! 10:29
lizmat feels more like a PHPism in JS to me 10:31
if I remember correctly, hashes in PHP were just arrays of pairs with an associative interface on them
aka, the order of insertion was kept
but with severe performance issues for large hashes, especially if the key didn't exist 10:32
Nemokosch I think in JS they just genuinely recognized that objects, or even records, have different implication and different "baggage" compared to an associative data type 10:41
now if you do Typescript, you can still use objects the associative way but it's kinda cumbersome and the old restrictions also hold so like there is no real reason to use them that way 10:42
the Mozilla site does mention the insertion order, honestly I didn't even know about it, and after checking the site, it still appears to me that it's not "the killer feature" of Map, just a kind of cherry on top thing 10:45
anyway, I have a Raku question! 😄 10:46
what's the idiomatic way to create an infinite sequence from an iterable that loops through the elements, much like itertools.cycle in Python?
lizmat |(iterable) xx * 10:59
m: my @a = 1,2,3; say (|@a xx *)[^10] 11:00
camelia (1 2 3 1 2 3 1 2 3 1)
lizmat Nemokosch ^^
Nemokosch yes well, this is what I was thinking of 11:27
thanks anyway
13:52 raiph joined 14:14 raiph left
librasteve role Object::Literal { has %.object; method new( %object ) { return self.bless( :%object ) } method FALLBACK( $key ) { %!object{$key} ~~ Callable ?? %!object{$key}() !! %!object{$key} } } my Object::Literal $olly .= new( %( :a(7), :b(42), :c({ "hi {$olly.b}" }) ) ); say $olly.c; #hi 42 14:15
^^^ thought it would be interesting to try some way to do method call semantics on a Hash 14:16
since this is the example set out at
14:17 tea3po left, tea3po joined
only snag is I can't work out how to get the Callable to be a method on the object like :c({ "hi {self.b}" }), 14:18
but since it is a literal it seems fair to use the var name itself 14:19
16:36 dakkar left 21:34 guifa left 22:33 habere-et-disper joined 23:07 teatwo joined 23:10 tea3po left 23:20 tea3po joined 23:23 teatwo left