🦋 Welcome to the MAIN() IRC channel of the Raku Programming Language (raku.org). This channel is logged for the purpose of keeping a history about its development | evalbot usage: 'm: say 3;' or /msg camelia m: ... | Log inspection is still being worked out Set by lizmat on 12 August 2021. |
|||
00:12
jast joined
01:12
committable6 left,
coverable6 left,
bloatable6 left,
nativecallable6 left,
unicodable6 left,
linkable6 left,
releasable6 left,
sourceable6 left,
shareable6 left,
statisfiable6 left,
quotable6 left,
bisectable6 left,
greppable6 left,
squashable6 left,
notable6 left,
tellable6 left,
evalable6 left,
benchable6 left
01:13
committable6 joined,
greppable6 joined,
benchable6 joined,
linkable6 joined,
quotable6 joined
01:14
sourceable6 joined,
bloatable6 joined,
statisfiable6 joined
01:15
nativecallable6 joined
01:29
mjgardner joined
01:30
swaggboi left
01:40
swaggboi joined
01:53
neshpion left
01:54
neshpion joined
02:12
notable6 joined
02:13
bisectable6 joined,
unicodable6 joined,
shareable6 joined
|
|||
vrurg | greppable6: Cache::Async | 02:16 | |
greppable6 | vrurg, 40 lines, 1 module: gist.github.com/bdeaaa12b890556adf...1d36de3fef | ||
vrurg | So, unless it's used in private projects... | 02:17 | |
03:13
linkable6 left,
tellable6 joined
03:14
squashable6 joined,
linkable6 joined
03:15
releasable6 joined
04:02
neshpion left
04:03
neshpion joined
05:03
bloatable6 left,
squashable6 left,
unicodable6 left,
tellable6 left,
nativecallable6 left,
sourceable6 left,
greppable6 left,
statisfiable6 left,
releasable6 left,
committable6 left,
quotable6 left,
benchable6 left,
notable6 left,
bisectable6 left,
shareable6 left,
linkable6 left
05:04
releasable6 joined
05:05
bisectable6 joined,
shareable6 joined
05:15
evalable6 joined
05:29
neshpion left
06:03
quotable6 joined
06:04
linkable6 joined,
committable6 joined,
benchable6 joined
06:05
squashable6 joined,
sourceable6 joined,
tellable6 joined,
notable6 joined
06:06
statisfiable6 joined
07:04
greppable6 joined
07:05
nativecallable6 joined
07:15
coverable6 joined
07:46
kylese joined
08:00
squashable6 left
08:02
reportable6 joined
08:05
bloatable6 joined
08:06
xinming left
09:04
unicodable6 joined
|
|||
Geth | flycheck-raku: eca94662ac | (Siavash Askari Nasr)++ | flycheck-raku.el Add project root to include path, instead of `lib` directory |
09:09 | |
flycheck-raku: 50ac228e65 | (Siavash Askari Nasr)++ | flycheck-raku.el Bump version to 0.6 |
|||
10:00
lizmat left,
TempIRCLogger left
10:03
Sgeo left
10:12
wanko joined,
lizmat joined
|
|||
wanko | hi, I was wondering, does raku support multi-parameter typeclasses? I checked docs.raku.org/language/haskell-to-...ypeclasses but well "TODO" | 10:13 | |
10:15
TempIRCLogger joined
|
|||
lizmat | you mean something like Rational[Int,Int] ? | 10:15 | |
moritz | my knowledge of haskell is pretty rusty and incomplete, but I think roles are the closes thing in raku | 10:16 | |
and those can be parameterized | |||
though in general, my feeling is that if you want to super-strong typing (a la haskell), raku is going to disappoint you | |||
wanko | oh, I think I see, thanks both of you. so Rational takes 2 parameters and by doing class Positive does Rational[UInt] you basically supply Positive as the second argument, right? | 10:21 | |
10:22
keutoi joined
|
|||
moritz | not quite | 10:22 | |
Rational wants two parameters, so trying to write Rational[UInt] is an error | |||
(ok, Rational has a default, iirc, so it's not actually an error, but if there was no default...) | 10:23 | ||
(just to be clear, a Rational in raku is a fraction of two integers) | 10:24 | ||
wanko | I think I get it now, thank you! | 10:28 | |
SmokeMachine_ | Hi you all! I have a question: Match objects has submaches that you can access as $match<submatch>, isn’t it an Associative way of accessing/storing it? So, wouldn’t it make sense to Match “does” Associative? | 10:51 | |
m: say Match ~~ Associative | 10:54 | ||
camelia | False | ||
11:00
squashable6 joined
11:42
frost-lab joined
|
|||
moritz | SmokeMachine_: Match used to be Associative when I was last very active in raku land, so it has changed since then | 11:54 | |
maybe because Associative has certain expectations of what happens if you call .list, which clash with the expectations of the Positional aspects | |||
likewise with .keys, .pairs etc | |||
12:03
reportable6 left
|
|||
andinus` | ,ping | 12:12 | |
12:12
andinus` left
12:13
andinus joined
|
|||
andinus | m: put "ping" | 12:13 | |
camelia | ping | ||
12:34
Xliff joined
|
|||
SmokeMachine_ | moritz: thanks! But Mach does have .keys, .pairs, etc like Associative, doesn’t it? | 12:43 | |
m: say (“bla ” ~~ /<ws>/).keys | 12:44 | ||
camelia | (ws) | ||
SmokeMachine_ | m: say (“bla ” ~~ /<ws>/).pairs | ||
camelia | (ws => 「」) | ||
SmokeMachine_ | m: say (“bla ” ~~ /<ws>/).kv | 12:45 | |
camelia | (ws 「」) | ||
SmokeMachine_ | m: say (“bla ” ~~ /<ws>/).antipairs | ||
camelia | (「」 => ws) | ||
andinus | i 'm writing something to parse call logs, i was thinking of an interactive program that displays charts/graphs for each number if the user chooses it | 12:47 | |
should i try ncurses or is there a better way to do this? | 12:48 | ||
13:04
reportable6 joined
|
|||
Xliff | replit.com/@Xliff/GiantChocolateSp...#main.raku | 13:21 | |
Why the differing results between the two grammars? | |||
Thanks. | |||
andinus: Yes, you can use curses, or a GUI lib. Raku does have GTK bindings. | 13:31 | ||
If you want simple plotting, there is SVG::Plot, but that is for generating SVGs, not displaying them. | 13:32 | ||
andinus | which GUI lib is recommended? i haven't wroked with any before | 13:43 | |
i was thinking of using curses to provide menu based interface and generating plots with svg::plot and displaying them with feh | 13:44 | ||
14:04
linkable6 left,
evalable6 left
14:17
tejr left
14:19
tejr joined
15:08
ens joined
15:27
dogbert11 joined
|
|||
Xliff | If I have an arbitrary prefix string, that may change. How can I use a regular expression to match any character up to that string? | 15:28 | |
So.... | |||
15:29
dogbert17 left
|
|||
moritz | .*? <?before $string< | 15:34 | |
.*? <?before $string> | |||
Xliff | moritz++! | ||
Is there a way to do that where "$string" is a scalar or an array? Or is that what you meant by "$string"? | 15:37 | ||
Moritz: So something like this seems to work: replit.com/@Xliff/GiantChocolateSp...#main.raku | 15:44 | ||
Working version of reusable parser: replit.com/@Xliff/GiantChocolateSp...#main.raku | 15:51 | ||
moritz: Thanks AGAIN! | |||
15:54
frost-lab left
15:58
frost-lab joined,
frost-lab left
16:01
keutoi left
16:02
keutoi joined
16:06
linkable6 joined
|
|||
Juerd | I love that I can just use ½ * tau * ($d/2)² | 16:39 | |
cnx | m: put τ | 16:43 | |
camelia | 6.283185307179586 | ||
17:06
dogbert11 left
17:09
keutoi left
17:10
keutoi joined
17:24
dogbert11 joined
17:30
dogbert17 joined,
dogbert11 left
17:32
keutoi left
17:35
dogbert17 left
17:43
dogbert17 joined
18:02
reportable6 left
18:04
reportable6 joined
18:06
Shaeto joined
|
|||
Shaeto | hmm, can't download the latest community commaide, mac os link is broken... and no information how to contact authors | 18:09 | |
moon-child | ping jnthnwrthngtn | 18:22 | |
nine | moon-child: on vacation | 18:23 | |
moon-child | right | 18:24 | |
18:35
kylese left
18:51
tejr left
18:52
kawaii_ left
18:54
pjlsergeant left
18:55
mjgardner left,
zostay left
18:56
PotatoGim left,
tejr joined
18:57
mjgardner joined
18:59
patterner_ left,
patterner_ joined
19:00
tbrowder left,
tejr left
19:01
tbrowder joined,
tejr joined
19:02
PotatoGim joined
19:06
zostay joined
19:11
pjlsergeant joined
19:12
Shaeto left
19:13
Shaeto joined
19:14
kawaii_ joined
19:15
xinming joined
|
|||
MasterDuke | Altai-man and timo are also involved with comma development | 19:16 | |
Altai-man thinks what to do | 19:18 | ||
Shaeto, hi. Alas, it's a known problem, for the time being it's not possible to build an OSX build for the latest version. Tomorrow I'll update the link to download 7.0 instead, I guess. It goes with some unfortunate bugs, so I am not sure what's the best way to proceed. | 19:21 | ||
Shaeto | Altai-man: thank you! | 19:22 | |
Altai-man | I can ship the buggy 7.0 for OSX or we can wait some days until it'll be possible to ship 7.1 properly. | ||
Shaeto | stable 7.1 is more interesting :) | 19:23 | |
Xliff | m: my $a = Seq(1, 2, 3); $a.^name.say; $a.elems.say; $a.gist.say | 19:31 | |
camelia | Seq 3 (1 2 3) |
||
Xliff | m: my $a = Seq(1, 2, 3); $a.^name.say; $a.elems.say; $a.gist.say; $a.gist.say | ||
camelia | Seq 3 (1 2 3) (1 2 3) |
||
Xliff | m: my $a = Seq(1, 2, 3); $a.^name.say; $a.elems.say; .say for $a; .say for $a | 19:32 | |
camelia | Seq 3 (1 2 3) (1 2 3) |
||
Xliff | m: my $a = Seq(1, 2, 3); $a.^name.say; $a.elems.say; $a.^name.say; .say for $a; .say for $a | ||
camelia | Seq 3 Seq (1 2 3) (1 2 3) |
||
Xliff | Why isn't that Seq complaining about it being used up? | ||
moon-child | Seq is an Iterable, not an Iterator | 19:34 | |
19:37
Sgeo joined
19:45
neshpion joined
19:53
mattil joined
|
|||
mjgardner | Can someone explain `first` and smartmatch (`~~`) to me? I’m trying to use them in the attached script that uses Perl’s WWW::Mechanize, and although I can do a regular `eq` in `first` I can’t see how to check against a list (`$rss_types` in the example). www.irccloud.com/pastebin/lmQ7jGHc | 19:57 | |
19:58
juanfra__ joined
|
|||
lizmat | m: dd "a" ~~ <a b c d> # mjgardner smartmatch won't work that way | 20:00 | |
camelia | Bool::False | ||
lizmat | m: dd "a" (elem) <a b c d> # mjgardner perhaps this will? | ||
camelia | Bool::True | ||
20:00
clarjon1 left
|
|||
[Coke] | docs.raku.org/routine/ACCEPTS - this shows what smartmatch does with a list, btw. | 20:01 | |
20:01
Shaeto left
|
|||
[Coke] | elem should work, an explicit junction should work ~~ any($rss_types) | 20:01 | |
mjgardner | lizmat: (elem) works 🙂 | 20:02 | |
[Coke]: `say $alt_links.first(*.attrs<type> ~~ any($rss_types)).url;` gets me a compiler error: Function "any" may not be called without arguments (please use () or whitespace to denote arguments, or &any to refer to the function as a noun, or use .any if you meant to call it as a method on $_) | 20:05 | ||
But (elem) works so I’ll go with that. | 20:06 | ||
[Coke] | try 'eq' instead of ~~ there. | ||
mjgardner | Nope, that gets me Nil. | 20:08 | |
MasterDuke | what if you give $rss_types a `@` sigil? | 20:11 | |
m: my $a = <a b ab abc d>; say "abc" ~~ any($a); my @b = <a b ab abc d>; say "abc" ~~ any(@b) | 20:12 | ||
camelia | False True |
||
[Coke] | Apologies for the bad advice, always trust lizmat. :) | 20:14 | |
mjgardner | MasterDuke: That only works if I do `.first( {$_.attrs<type> ~~ any(@rss_types) } )`, but that’s a bit noisier than lizmat’s (elem), so I’m going with the latter. | 20:18 | |
MasterDuke | sure. elem going to be faster anyway, just showing how it could/would work | 20:20 | |
mjgardner | Thanks for the help all. | 20:23 | |
20:24
mattil left
20:32
codesections joined
20:33
Xliff left
20:41
dogbert11 joined,
dogbert17 left
20:46
dogbert17 joined
20:49
Xliff joined,
dogbert11 left
20:55
dogbert17 left,
dogbert17 joined
21:00
dogbert17 left
21:18
clarjon1 joined
|
|||
japhb | andinus: There's some rough stuff in github.com/japhb/Terminal-QuickCharts, but that's more for making a CLI output a chart, than to have live charts going in a TUI app. There's also github.com/ab5tract/Terminal-Print which is relatively low level. (It has the underlying code to do animatable widgets, but it has NO widget library. Just the low-level bits.) | 21:22 | |
22:07
evalable6 joined
22:20
dogbert17 joined
23:20
reportable6 left,
statisfiable6 left,
notable6 left,
squashable6 left,
benchable6 left,
evalable6 left,
bloatable6 left,
coverable6 left,
quotable6 left,
sourceable6 left,
greppable6 left,
nativecallable6 left,
tellable6 left,
unicodable6 left,
bisectable6 left,
shareable6 left,
releasable6 left,
linkable6 left,
committable6 left,
evalable6 joined,
sourceable6 joined
23:21
unicodable6 joined,
tellable6 joined
23:22
nativecallable6 joined,
bloatable6 joined,
statisfiable6 joined
23:23
benchable6 joined,
coverable6 joined,
notable6 joined
|