This channel is intended for people just starting with the Raku Programming Language (raku.org). Logs are available at irclogs.raku.org/raku-beginner/live.html Set by lizmat on 8 June 2022. |
|||
00:03
Kaiepi left
02:09
frost joined
04:16
samebchase joined
|
|||
Util | deoac: According to github.com/rakudo/rakudo/blob/mast....nqp#L3964 , "Some things can't be done to our vars". | 04:29 | |
I am not clear on why "type constraint" is one of those things, though. | 04:30 | ||
Could be a necessity of the fundamental language design that I just am not seeing, | |||
or it could just be a limitation of the current implementation (as in "Not Yet Implemented"). | |||
Two old issues are mainly about the LTA error: github.com/Raku/old-issue-tracker/issues/4677 , github.com/Raku/old-issue-tracker/issues/5778 | |||
The docs, at docs.raku.org/language/variables#T...declarator , suggest that `our Int $foo` should work: | |||
"our variables work just like my variables, except that they also introduce an alias into the symbol table." | |||
05:35
Kaiepi joined
06:07
deoac left
|
|||
pelevesque | Anyone know if there is a difference under the hood between these two lines. I see know difference over the hood. | 06:53 | |
``` | |||
my @seq = 1, 2, 4 ... ∞; | |||
my @seq = 1, 2, 4 ... *; | |||
``` | |||
Anyone know if there is a difference under the hood between these two lines. I see no difference over the hood. | |||
``` | |||
my @seq = 1, 2, 4 ... ∞; | |||
my @seq = 1, 2, 4 ... *; | |||
``` | |||
Nemokosch | There is no difference in this case, indeed | ||
pelevesque | Thanks. | 06:54 | |
Nemokosch | * is the so-called whatever star, it depends on the context what it will mean | ||
in a sequence or a range, it will mean Inf | |||
pelevesque | Ah, I see... and here it means to whatever which is the same as infinity. | 06:55 | |
Makes sense, thanks. | |||
Nemokosch | since these sequences are lazy, often it's possible to not think of them as "to infinity" but "to what I demand" | ||
m: (a .. z) Z~ (1, 2, 4 ... *) andthen .say; | 06:57 | ||
oops, wrong line | |||
m: ('a' .. 'z') Z~ (1, 2, 4 ... *) andthen .say | |||
so yes, it's actually the same as Inf here but it may look nice in a context like this | 06:58 | ||
pelevesque | Ah true - I like that - to what I demand idea. | 06:59 | |
Nemokosch | do we have something like splice in Javascript? | 07:34 | |
oh we do have splice | |||
pelevesque | I'm having a problem and not sure how to solve it. | 07:57 | |
I have the following code in a module (.rakumod). If I use my module in a raku.main and try test(4) it will fail. I'm realizing it does not like the fact that I use my, | |||
``` | |||
my @powers2 = 1, 2, 4 ... 5.7896045e+76; # 2⁰ → 2²⁵⁵ | |||
subset Pow2 of UInt where * ~~ any @powers2; | |||
sub test (Pow2 $n) is export { say $n; } | |||
``` | |||
If I do this, I have no problem: | |||
``` | |||
subset Pow2 of UInt where * ~~ any 1, 2, 4 ... 5.7896045e+76; | |||
sub test (Pow2 $n) is export { say $n; } | |||
``` | |||
I can use our instead, but then @powers2 becomes available in my raku.main | |||
Nemokosch | I wonder if you can export anything with internal variables in it | 08:04 | |
I'm not a module guru but I have the impression that exporting a function that has variables only accessible in the exporting module, would require some sort of "module-level closure" to work | 08:05 | ||
Nahita | `my constant` instead of `my`? | 08:06 | |
Nemokosch | but then I'm thinking: if modules are a unit of compilation, that shouldn't be a problem, right? | ||
pelevesque | Nahita, I'm going to try. | ||
Nahita | makes it compile time thing right | ||
pelevesque | Nahita, it worked. | 08:08 | |
Thanks! | |||
Nahita | oh, glad | ||
idk why it didn't work without it though | 08:18 | ||
btw, you can do `2 «**« ^256` for @powers2 but maybe you already know that | |||
pelevesque | I did not know that. | 08:19 | |
Nemokosch | _hyper hyper_ | 08:20 | |
Nahita | hyped here: docs.raku.org/language/operators#H..._operators | ||
it's a good way to say good bye to `.map` in cases i think | 08:21 | ||
Nemokosch | but don't forget that the hyper meta-operator is not lazy | 08:22 | |
pelevesque | I know nothing... I have everything to learn... so thanks! | ||
Nemokosch | I think this is hard to get right at first, even though it can really look clever at times | 08:23 | |
pelevesque | Raku feels really nice to learn. | ||
and use! | |||
Nemokosch | This is a phase 😅 | 08:24 | |
something to talk about in my presentation at the raku conference 😛 | |||
pelevesque | Coming from JS, it feels like someone gave me a Samurai sword instead of a butter knife. | ||
Nemokosch | And I'd say JS isn't even bad | 08:25 | |
pelevesque | not bad at all... I love that language too... but Raku makes some things much easier. | 08:26 | |
Nemokosch | But yes, Raku is still bigger... some argued that it's bigger than C++ | ||
pelevesque | and the gradual typing is amazing. | ||
Nemokosch | The gradual typing will bite you sooner or later | ||
this is not a wish, just experience... | |||
there are still serious issues with it, simply put | |||
khm, khm, trying to pass an array literal as a typed array | 08:27 | ||
well, typed arrays in general | 08:28 | ||
that's yucky stuff | |||
still, a lot of things can be done by clever coercions | 08:30 | ||
the design of Raku leans towards "operator implies type" instead of "operator implies some abstract operation" | |||
if you have the + sign, that will be numeric addition and that's that | |||
pelevesque | I'm gonna try to wrap my head around that! | 08:31 | |
Are you in asia? Or are you up super late like me? | |||
Nemokosch | you can of course overload it but why would you when you can just _invent new operators if need be_ | ||
negative, Europe | |||
pelevesque | I invented 2 operators for the module I am working on. | 08:32 | |
What kind of things are you building with raku? | |||
Nemokosch | I'm mainly just scripting around. I don't like shell. | 08:33 | |
pelevesque | nice | 08:34 | |
Nemokosch | automation stuff 🤖 | ||
my biggest "flex" is that I have used an HTTP client already xD | |||
pelevesque | How long have you been a Rakoon? | 08:35 | |
Nemokosch | roughly a year | 08:36 | |
so yes... I thought last time I only watched the conference, this time I will participate | |||
draw the conclusions of this year | |||
trynna give something back, feedback at least | 08:37 | ||
pelevesque | I'm watching a Ruth Halloway talk and she said something inspiring... I quote - "Do it, release the code... let the code out" | ||
Did you come from Perl or straight into Raku? | 08:39 | ||
Nemokosch | I started with Raku | ||
Sometimes I check Perl stuff but I'm not actively using it for anything longer than 5 lines | |||
pelevesque | I never did Perl. Coming from JS. I'd probably just get confused if I did Perl after learning a bit of Raku. | ||
My sleeping hours became messed up because of Raku. | 08:43 | ||
It's hard to stop coding since it's so much fun. | |||
Nemokosch | 😂 | ||
have you tried the weekly challenge? | |||
pelevesque | No. I have specific projects keeping me busy. But, I should at one point. | 08:44 | |
I bought some books and learned a lot from those, and have a kind of mentor that is good in Raku who helps me too... and you and Nahita! | 08:45 | ||
Nemokosch | the weekly challenge is usually something that you can solve with < 10 lines of code, often something arithmetics related | 08:47 | |
and I agree - the availability and enthusiasm is a strong point of the community | |||
also, something that shouldn't be overlooked: the language itself is developed in a transparent and comprehensible manner | 08:50 | ||
if you know the essentials of Raku, you have a chance to understand the internals, since it's NQP all around | 08:51 | ||
and NQP is a subset of Raku | |||
pelevesque | Ya, that is super cool actually. | ||
Maybe one day I'll get there and can contribute, | |||
Nemokosch | Same 😄 | 08:52 | |
The tough nut to crack is still performance... | 08:53 | ||
pelevesque | ya - I keep reading that. | 08:54 | |
Nemokosch | And this is not something to overlook if you need a lot of calculations quickly put together. Of course you could just trust C with the computations and invoke it from a dynamic library but yes, it would be important to catch up to the potential competitors like Python | 08:57 | |
pelevesque | I looked at Rakudo's commit history, and there only seems to be a few people working on it. | 08:58 | |
Nemokosch | It's like you can get to know them one by one | 08:59 | |
Again, lizmat, vrurg and jhnthn will surely hold presentations on the conference | 09:00 | ||
lizmat | conf.raku.org/2022/talks | ||
Nemokosch | what does snip do, exactly? | 09:10 | |
lizmat | m: use v6.*; dd (^10).snip(* < 5, * < 8) | 09:21 | |
camelia | ((0, 1, 2, 3, 4), (5, 6, 7), (8, 9)).Seq | ||
lizmat | it cuts up an Iterable into lists depending on given condition | 09:22 | |
(s) | |||
Nemokosch | can it be used in a way that only takes some middle part of a sequence? | 09:24 | |
lizmat | no, but there's a PR for that: github.com/rakudo/rakudo/pull/5008 | 09:29 | |
say (^20).skip(0,5,3); # (5 6 7) | |||
Nemokosch | that operates on "indices", though, not predicates | 09:32 | |
I know there is toggle but honestly, it's a really cumbersome state machine that often doesn't give the right value around the boundaries because of that | |||
pelevesque | When is 6.e due? Is there a release schedule... or it's whenever things are ready? | 09:33 | |
Nemokosch | ~~is there a release schedule for Perl6~~ | 09:35 | |
lizmat | 6.e will be released after RakuAST has been merged | 09:39 | |
that's about the schedule that we have | |||
Nemokosch | How many tests pass for RakuAST? 🙂 | 09:41 | |
and especially what percentage | |||
lizmat | I think it was just below 50% last time I checked | ||
but that's fully passing files | 09:42 | ||
pelevesque | Is there a way to create a symbol in raku. | 09:53 | |
I want to write a note name like G#4 without any quotes or anything of possible and when I write that it is the same as if I had written the associated MIDI note number. Possible? | |||
Nemokosch | the hash is not a good idea | 09:57 | |
lizmat | # is a character that is not acceptable in an identifier, so alas, no | 09:58 | |
you *could* probably create the symbol, but then you wouldn't be able to use it | 09:59 | ||
Nemokosch | there is the musical sharp sign though | ||
also not allowed in identifiers but could be used as a very tight operator | |||
and that sounds like a meaningful way to go about it imo | 10:00 | ||
♯ as a tight infix operator that eats musical note enums and octave numbers | |||
but then the same approach wouldn't work for flat | 10:01 | ||
wait I messed up the terminology | 10:02 | ||
lizmat | I guess you would have to export C D E F G A B as enums | ||
Nemokosch | it wouldn't work for the normal key, whatever the name is | ||
G4 | |||
lizmat | .oO( export them all as enums :-) |
10:03 | |
that could work | |||
Nemokosch | that would "work" but it would be pretty weird, right? having G4 as one thing on its own and G♯4 as G and 4 composed 🙂 | 10:04 | |
lizmat | the ♯ infix op could just be a hash lookup really | 10:05 | |
Nemokosch | but then how to do G4 | ||
other idea: flat and sharp as tight postfix, that's semantically more correct | 10:06 | ||
lizmat | would be an enum | ||
Nemokosch | and the letters would be functions | ||
lizmat | that could work oot | ||
too | |||
Nemokosch | so G 4 would be a function call 😄 | ||
and G♯ 4 a different function call | 10:07 | ||
but then of course you'd need to pay attention to the precedence still | |||
eventually, it will always have to be something compound, apart from G4, B6 stuff | 10:08 | ||
12:26
Kaiepi left
12:31
frost left
13:41
Kaiepi joined
15:13
Kaiepi left,
Kaiepi joined
|
|||
pelevesque | Thanks, you both gave me a lot to think about! | 17:00 | |
17:14
MasterDuke left
18:59
Kaipei joined
19:02
Kaiepi left
|
|||
Is there a default .gitignore recommended for Raku projects? | 20:18 | ||
I see that it created lib/.precomp/* so I should probably ignore that. | |||
SmokeMachine | pelevesque: probably not the best way… but a way… glot.io/snippets/gcbpxggou0 | 20:25 | |
Another way: glot.io/snippets/gcbql1t0vf | 20:51 | ||
pelevesque | OMG SmokeMachine... that is gold! | 20:57 | |
SmokeMachine | I think I prefer the 2nd way… | 20:58 | |
pelevesque | Me too... I think... Thanks a bunch! | 20:59 | |
21:31
Kaiepi joined
21:33
Kaipei left
|