00:24 ismustachio joined 00:28 ismustachio left 02:07 ismustachio joined 02:11 ismustachio left 02:38 ismustachio joined 02:42 ismustac1 joined 02:44 ismustachio left 03:00 ismustac1 left 03:06 ismustac1 joined, frost joined 03:57 ismustac1 left
Jaguart A question on Raku foo/style. There are so many ways to do things, it makes Perl feel a little like a straight-jacket 😮 08:25
m: ${ a => 1}.gist
m: say ${ a => 1}.gist; say ${ a => 1}.raku 08:26
Do you prefer to initialise your hashes using the gist or the raku? and a hint as to why? 08:27
frost m: a => 1 08:29
camelia WARNINGS for <tmp>:
Useless use of "a => 1" in sink context (line 1)
Useless use of constant value a => 1 in sink context (line 1)
frost m: {a => 1}.say 08:30
camelia {a => 1}
Jaguart @frost#6297 - oh yeah - sorry, unnecessary $ sigil, so you prefer ``{ a => 1 }`` over ``{ :a(1) }``? 08:34
frost I prefer a => 1
it's more clear
Jaguart how about in function-sigs as per ``$o.do-things( $str, :tweak, :unordered )`` where newbie me is assuming that the ``:`` is actually a pair defaulted to boolean-True? 08:37
vs ``$o.do-other( $str, tweak=>True, unordered=>True )`` 08:38
frost I like the shorter one :) 08:39
Jaguart Moving from Perl I actually like the ``:`` pair distinction - less temptation to view ``=>`` as a fat-stringifying-comma. The extra brackets do feel a bit more effort though. 08:41
frost in raku, you can choose the way you like in different places\ 08:46
gfldex m: say ‚123‘ ~~ m:2nd/\d/; 08:55
camelia 「2」
gfldex that is the main reason to have colon pairs in Raku
The other forms of colon pairs are desired side effects. 08:56
Jaguart so that's a pair in hiding? ``:2nd(/\d/)`` ?? 09:00
gfldex yes
Jaguart 🤯 09:01
gfldex m: sub infix:<op>(\a, \b, *%_) { say "got pairs: $%_"; }; 1 op 2 :2nd :99problems; 09:02
camelia got pairs: nd 2
problems 99
Jaguart wow - I guess that means ``Q:b 'Mind\nBlown'`` is actually a ``:b(True)`` 09:03
gfldex .oO(:Raku defaults to True) 09:06
Jaguart hmmm I dont grok that... ``:2nd`` seems to become ``nd=>2``??
Nemokosch Yes, it does become that
09:06 dakkar joined
If the value is a number, you can use it as a prefix of the key 09:08
So kg => 2 is :2kg in other words
gfldex m: sub foo(:$th){ say $th; }; foo :5th, :6th; 09:09
camelia 6
gfldex Please note that there is silent shadowing.
m: sub foo(:$th){ say $th; }; foo :5th:6th; 09:11
camelia 6
gfldex Also, the comma is optional. 09:12
m: dd :R:a:k:u;
camelia :R
frost m: say :5th:6th
jaguart what is 'silent shadowing'? 09:13
gfldex m: say (:R:a:k:u).pairs;
camelia (0 => R => True 1 => a => True 2 => k => True 3 => u => True)
gfldex in :5th:6th th => 6 will discard th => 5. The last one wins. 09:14
jaguart so it's like a hash rather than two pairs 09:15
gfldex yes
m: say (my method me(){}).signature; 09:16
camelia (Mu: *%_)
gfldex In fact, they end up in a hash for methods.
jaguart Wow - I can see a whole new raft of bugs opening up before my eyes... :)
gfldex In practice, this seems not to matter. 09:17
jaguart I'm already learning to hate ``%h<<$var>>`` for returning slices - clearly my ``<<>>`` foo is not groked yet
hmmm - is that showing a default method signture - slurpy hash of Mu? 09:18
gfldex yes 09:19
jaguart Im still considering two successive pairs with the same name folding into one :o
gfldex m: say {;}.signature; (class C {}).^mro.say; 09:20
camelia (;; $_? is raw = OUTER::<$_>)
((C) (Any) (Mu))
gfldex Raku is basically an assortment of defaults. :)
Nemokosch What is %h<<$var>> 09:21
jaguart ``%h<<$k>>`` works better as ``%h{$k}`` - esp when $k contains spaces - took me an hour to debug that <<$k>> was returning a slice of Any,Any,Any rather than the value I was looking for. 09:23
Thank you all - you have raised my Raku - and eyebrows by at least a foot! 09:24
gfldex m: my %h is default(Nil); my $stuffzs = 1,2,3; dd %h«$stuffzs»;
camelia WARNINGS for <tmp>:
Useless use of constant integer 3 in sink context (lines 1, 1)
Useless use of constant integer 2 in sink context (lines 1, 1)
Nil %h{'1'} = Nil
gfldex m: my %h is default(Nil); my $stuffzs = (1,2,3); dd %h«$stuffzs»; 09:25
camelia (Nil, Nil, Nil)
gfldex m: my %h is default(Failure.new('bad‼')); my $stuffzs = (1,2,3); dd %h«$stuffzs»;
camelia (Failure.new(exception => X::AdHoc.new(payload => "bad‼"), backtrace => Backtrace.new), Failure.new(exception => X::AdHoc.new(payload => "bad‼"), backtrace => Backtrace.new), Failure.new(exception => X::AdHoc.new(payload => "bad‼"), backtrace =>…
gfldex Any is the default default. If that is not useful in your usecase, you are free to change the default. 09:26
jaguart It was more like: 09:27
m: my $k='a b c';my %h = ( 'a b c' => 'yeah');say %h<<$k>>;say %h{$k};
camelia ((Any) (Any) (Any))
jaguart so more that I was getting a slice of Nil when I was using keys with spaces 09:28
oh I like your slice of Failures - nice 09:29
gfldex Sadly, the stacktrace doesn't point to the right place. 09:30
And is default() doesn't take a callable. What I would really like it to take. 09:31
jaguart :pray: Many thanks for the light. As its nearly bed-time in Australia, I shall dream of butterflies 09:34
frost m: my $l = 'a b c'; say <<$l>> 09:36
camelia (a b c)
frost m: my $l = 'a b c'; .say for  <<$l>>
camelia a
gfldex If you think in functional terms, a lot of stuff makes sense in Raku. 09:37
11:33 ismustac1 joined 11:37 ismustac1 left 13:52 frost left 14:08 ismustac1 joined 14:16 ismustac1 left 14:18 ismustac1 joined 14:54 ismustac1 left 14:55 ismustac1 joined
guifa jaguart thankfully, few people use %foo«$bar» in practice. Personally (and most I know) tend to still use %foo{$bar}. guillomets are tough for anyone to type if it's not on their keyboard, and actual double < > takes up too much space XD 15:52
lizmat jaguart: version 0.0.9 of Zef::Configuration now supports: zef-configure add-repository tag url --name="Longer name for repo" 16:46
jaguart: and also: zef-configure remove-repository tag
people should now be set to create their own (company) ecosystem to work with Raku 16:51
17:24 ismustac1 left 17:27 ismustac1 joined 17:37 dakkar left 17:40 ismustac1 left 17:49 ismustac1 joined 19:40 ismustac1 left 19:59 ismustac1 joined 21:14 ismustac1 left 21:23 ismustac1 joined 21:59 ismustac1 left 22:25 ismustac1 joined 22:30 ismustac1 left 23:04 ismustac1 joined 23:09 ismustac1 left