🦋 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:02 reportable6 joined
guifa whoa 00:33
TIL
my @a = 1,2,3; push(@a: 4); say @a 00:34
evalable6 [1 2 3 4]
guifa I always thought it HAD to be parentheses-less
00:37 statisfiable6 joined 00:38 swaggboi joined 00:58 gcd left, gcd joined 01:27 jpn joined 01:32 jpn left 01:46 benchable6 joined, releasable6 joined
tonyo what is the push(@a: 4) compiling to, i'd've figured a comma there 01:49
my @a = 1,2,3; push(@a, 4); dd @a; 01:50
evalable6 Array @a = [1, 2, 3, 4]
01:51 sourceable6 joined
tonyo guifa: isn't the `@a.push: ...` syntax just sugar for `push(@a, ...)` like in perl's `$a = T->new; $a->xxx` is just sugar for `$a = T::new(T); T::xxx($a);` 01:52
or whatever it is, i haven't had a perl job for six years now
01:53 coverable6 joined, committable6 joined
guifa There's a sub push(@,$) but then Array defines a method push($) 01:54
push(@a,4) calls the sub
push(@a: 4) calls the method
IIRC the sub just ends up calling the method anyways, but that doesn't have to be the case (even if it normally is) 01:55
tonyo interesting 01:56
guifa the idea is if I make a class
class Foo { method parrot($x) { say $x } }; my $f = Foo.new; $f.parrot('oo'); parrot $f: 'proc' 01:57
evalable6 oo
proc
guifa I don't need to write the sub version manually
tonyo wonder where that came from 02:07
looks fp-ish
in spite of the source obviously being oo
guifa I always figured it was designed to make stuff very procedural 02:08
02:08 teatwo left
guifa but I guess both functional and procedurals tend to be more verb first, and OO more object first 02:10
fwiw this is in reference to github.com/Raku/problem-solving/issues/384 02:11
tonyo interesting, i'd echo codesection's comment 02:27
02:32 teatime joined
tonyo my Promise $p .=new; keep $p: 42; await $p; say $p.result 02:56
evalable6 42
03:04 linkable6 joined 03:15 jpn joined 03:20 jpn left 04:20 statisfiable6 left, benchable6 left, bloatable6 left, squashable6 left, bisectable6 left, quotable6 left, reportable6 left, evalable6 left, linkable6 left, committable6 left, coverable6 left, sourceable6 left, releasable6 left, tellable6 left, unicodable6 left, nativecallable6 left, greppable6 left, notable6 left, shareable6 left 04:21 sourceable6 joined, notable6 joined 04:22 benchable6 joined, statisfiable6 joined, reportable6 joined, shareable6 joined 04:23 unicodable6 joined, quotable6 joined 04:45 pjlsergeant__ left, pjlsergeant__ joined 05:02 pjlsergeant__ left, quotable6 left, unicodable6 left, shareable6 left, reportable6 left, statisfiable6 left, benchable6 left, notable6 left, sourceable6 left, teatime left, swaggboi left, avuserow left, nine left, tinita left, xelxebar left, avar left, ab5tract left, summerisle left, perlmaros left, defaultxr left, DarthGandalf left, m_athias left, z4kz left, Sgeo left, dg left, tjr left, ProperNoun left, Geth left, donpdonp|z_ left, jetchisel left, gcd left, buffet left, bartolin left, thebb left, xkr47 left, corwin left, ugexe left, vrurg left, rjbs left, tobs left, jrjsmrtn left, kaskal left, xinming left, dutchie left, sivoais left, lizmat left, tbrowder_ left, dogbert17 left, bdju left, justache left, oodani left, samcv left, gugod left, peder left, mark22k left, spacekookie left, rypervenche left, charsbar left, cm left, eseyman left, sftp left, kybr left, renormalist left, jmcgnh left, amenonsen left, kaol left, gabiruh left, tadzik left 05:03 MasterDuke joined, camelia joined, hexology joined, sjn joined, pat_js joined, merp joined, _________ joined, guifa joined, El_Che joined, RakuIRCLogger joined, lucerne joined, gfldex joined, bd3i joined, andinus joined, mjgardner joined, SmokeMachine joined, jast joined, polettix joined, patrickb joined, clarkema joined, atweedie joined, snonux joined, jdv joined, phogg joined, esh joined, ecocode joined, coleman joined, kawaii joined, jcallen joined, leedo joined, nebuchad` joined, timo joined, discord-raku-bot joined, human-blip joined, japhb joined, synthmeat joined, JRaspass joined, pierrot_ joined, gordonfish joined, zostay joined, Scotteh joined, leont joined, dpk joined, rba joined, BinGOs joined, tib joined, tbrowder__ joined, a3r0 joined 05:04 RakuIRCLogger left, jpn joined 05:09 jpn left 05:20 cliniclown joined 05:21 cliniclown left 05:23 nil joined 05:24 bloatable6 joined 05:26 squashable6 joined 05:27 bisectable6 joined, greppable6 joined 05:28 releasable6 joined, coverable6 joined, linkable6 joined 05:29 committable6 joined 06:00 reportable6 left 06:27 nil left 06:35 z4kz left 06:52 jpn joined 06:57 jpn left 07:31 jpn joined 07:37 Sgeo left, jpn left 07:47 nativecallable6 joined 08:07 tellable6 joined 08:09 abraxxa joined 08:10 dakkar joined 08:19 simcop2387 left, perlbot left, xkr47 left 08:21 teatwo joined 08:23 perlbot joined 08:24 teatime left 08:25 simcop2387 joined 08:52 jpn joined 09:11 Geth left, Geth joined 09:35 Manifest0 joined, Manifest0 left 09:39 jpn left 09:45 Manifest0 joined 09:50 jpn joined 09:54 reportable6 joined 10:04 Manifest0 left 10:35 jpn left, Manifest0 joined 10:39 evalable6 joined 11:25 jpn joined 11:27 HobGoblin left, goblin joined 11:35 jpn left 11:58 oodani left 11:59 oodani joined 12:00 reportable6 left 12:05 oodani left 12:20 oodani joined 12:50 xkr47 joined
xinming when we do .split, Is there a way to split on the first occurence of the space for the regex? 13:07
lizmat m: say "foo:bar:baz".split(":",2) ? 13:09
camelia ===SORRY!=== Error while compiling <tmp>
Confused
at <tmp>:1
------> say "foo:bar:baz".split(":",2)⏏ ?
expecting any of:
infix
infix stopper
postfix
statement end
statement m…
lizmat m: say "foo:bar:baz".split(":",2)
camelia (foo bar:baz)
13:10 lizmat_ joined
xinming lizmat: SO the 2 here means $limit, right? 13:11
lizmat_ yes, it indicates the maximum number of parts you want
xinming I do checked the doc, I used .split(/<space>/, :limit(1)) Doesn't work, I thought it is used to specify times to match. 13:12
got it, thanks.
13:13 lizmat left
lizmat_ hmmm.. maybe limit *should* become a named argument 13:14
13:14 jpn joined
lizmat_ and actually: limit is a bad name in that context, just like "length" is 13:15
13:20 lizmat_ left, lizmat joined 13:21 jpn left
lizmat clickbaits rakudoweekly.blog/2023/09/11/2023-37-issuing/ 13:22
nemokosch in what regard is it a bad name? 13:30
lizmat because it is not clear whether you're specifying the number of splits, or the number of produced parts 13:31
nemokosch fair enough 13:44
13:47 jpn joined 13:49 destroycomputers left
fun times. I reorganized the "atom highlighter" so that one can maintain it without all the Coffeescript legacy. We have asked a move for VS Code from some ages old plist-format highlighter in a Perl package that nobody ever touches anymore 13:49
and after months of idling over it, dude just grabs two screenshots with the supposed highlighters with VSC on some snippet from wikipedia, says that there are some problems with the "Atom" version and rejects it 13:50
13:50 destroycomputers joined
ironically enough, the supposed "Atom highlighting" was highly different from the highlighting on Github 13:51
14:00 nicole left, nicole joined 14:44 jgaz joined
tonyo 'a:b:c'.split(':', :into(2)) would be nice 15:20
ugexe :into is already used to mean something else for 'classify' 15:26
lizmat I was more thinking :parts(2) 15:42
dakkar m: dd('a:b:c'.split(':',2)) 15:44
camelia ("a", "b:c").Seq
15:44 evalable6 left, linkable6 left 15:46 evalable6 joined, xinming left 15:48 xinming joined
ugexe i don't like parts either, because it really means 'max-parts'. in that sense limit makes more sense 15:53
lizmat :max-parts(2) would work for me 15:54
15:56 jpn left
ugexe in node, typescript, java, and julia its called limit, in c# its called count, in python its called max-split 15:58
lizmat max-split has the same semantics, as in number of max number of parts produced? 15:59
antononcube Does :max-parts(2) mean the first two elements of a split? If yes, is it a good idea to have :first(2) and :tail(3) ?
ugexe er, maxsplit rather
then again in python i guess thats just a positional parameter named maxsplit
i have ignored positional implementations 16:00
nemokosch What's wrong about it being a positional?
lizmat because it's an optional argument, and the other optionals are named arguments 16:01
antononcube @nemokosch I was going to suggest it, but that is what Mathematica does. (So, I restrained myself.) 16:02
ugexe max-splits reads better than max-split
nemokosch Depending of the scope of "the other optionals", that is, there are clearly optional positional parameters in the core 16:03
lizmat so max-splits => 1 would give you 2 parts ?
antononcube But since people bring Python examples (Python!!?), here is the Mathematica page for StringSplit : reference.wolfram.com/language/ref...Split.html
ugexe it would give you 1 or 2 parts 16:04
lizmat looks like Mathematica takes the current positional approach
maybe we just need to clarify the documentation, as the internal name of the argument shouldn't matter 16:05
antononcube @lizmat Yeah, that is why I am not suggesting it. 🙂
In Python positional arguments have names; in Mathematica they do not. 16:06
MasterDuke i'd vote for max-parts over max-split(s) if it's a user-visible name
antononcube I thinking options like ":first", ":tail", or ":upto" are better.
Actually, ":upto" is shorter and as descriptive as ":max-splits". 16:07
lizmat disagree 16:08
antononcube Ok, or ":up-to". 🙂
@lizmat I do not feel strongly about my suggestions. I am way too biased from/by Mathematica. 16:09
lizmat upto could be considered some kine of marker upto splits should be done
tonyo max-parts is nice 16:10
antononcube @lizmat Cool! 16:13
And a good example of my bias: reference.wolfram.com/language/ref/UpTo.html 16:14
tonyo upto sounds like it might truncate results, eg 'ab:c:d'.split(':', :upto(2)) -> 'ab', 'c' 16:15
ugexe max-elems is kind of nice in that it implies $splitted.elems <= $max-elems 16:16
although it would have the same problem as sounding like it might truncate results 16:17
tonyo max-splits seems to be the only one without the implication 16:19
16:37 dakkar left 16:48 abraxxa left 17:26 linkable6 joined 17:56 ab5tract left 18:01 reportable6 joined 18:51 notna joined 19:01 notna left 19:34 Sgeo joined
nemokosch however, that one does change the current semantics, not just the name 19:58
20:16 deoac joined 20:20 teatwo left 20:21 teatwo joined 20:27 swaggboi left 20:32 deoac left 21:13 swaggboi joined 22:13 committable6 left, bloatable6 left, greppable6 left, coverable6 left, squashable6 left, bisectable6 left, releasable6 left, sourceable6 left, unicodable6 left, statisfiable6 left, shareable6 left, reportable6 left, coverable6 joined, squashable6 joined, sourceable6 joined, shareable6 joined 22:14 greppable6 joined, bloatable6 joined, unicodable6 joined, bisectable6 joined 22:15 releasable6 joined, committable6 joined, statisfiable6 joined 22:16 reportable6 joined 23:16 linkable6 left, evalable6 left, linkable6 joined 23:18 evalable6 joined 23:47 Manifest0 left