🦋 Welcome to Raku! raku.org/ | evalbot usage: 'p6: say 3;' or /msg camelia p6: ... | irclog: colabti.org/irclogger/irclogger_log/raku Set by ChanServ on 14 October 2019. |
|||
00:07
Doc_Holliwood left
00:39
dogbert17 left
00:48
marcusr left
00:49
marcusr joined
00:59
dogbert17 joined
01:09
frost-lab joined
01:22
kvw_5 joined
01:25
kvw_5_ left
01:38
oneeggeach joined
02:38
notable6 left,
releasable6 left,
statisfiable6 left,
sourceable6 left,
committable6 left,
greppable6 left,
nativecallable6 left,
coverable6 left,
quotable6 left,
bloatable6 left,
tellable6 left,
squashable6 left,
unicodable6 left,
bisectable6 left,
shareable6 left,
benchable6 left,
evalable6 left,
linkable6 left,
bisectable6 joined
02:39
bloatable6 joined,
shareable6 joined,
committable6 joined,
releasable6 joined,
sourceable6 joined,
quotable6 joined,
unicodable6 joined,
statisfiable6 joined,
tellable6 joined
02:40
notable6 joined,
benchable6 joined,
greppable6 joined,
nativecallable6 joined,
squashable6 joined,
coverable6 joined,
evalable6 joined
02:41
linkable6 joined
03:41
bloatable6 left,
shareable6 left,
greppable6 left,
tellable6 left,
nativecallable6 left,
coverable6 left,
committable6 left,
bisectable6 left,
benchable6 left,
unicodable6 left,
notable6 left,
squashable6 left,
releasable6 left,
evalable6 left,
quotable6 left,
statisfiable6 left,
linkable6 left,
sourceable6 left
03:42
releasable6 joined,
sourceable6 joined
03:43
nativecallable6 joined,
greppable6 joined,
benchable6 joined,
evalable6 joined,
tellable6 joined,
statisfiable6 joined,
bisectable6 joined,
notable6 joined,
linkable6 joined,
committable6 joined,
squashable6 joined
03:44
bloatable6 joined,
unicodable6 joined,
quotable6 joined,
coverable6 joined,
shareable6 joined
03:52
swagg_boi joined,
swagg_boi left
04:14
neshpion left
04:22
oneeggeach left
04:28
Maylay left
04:30
Maylay joined
04:55
wamba joined
05:01
sno joined
05:12
PlayPause9 joined,
Kaiepi left
05:36
kurahaupo left
05:37
andinus left
05:41
Doc_Holliwood joined
05:44
kurahaupo joined
05:45
jmcgnh left
05:48
clarjon1 left
05:51
jmcgnh joined,
parabolize left
05:57
wamba left
06:00
stoned75 joined
06:02
kurahaupo left
06:06
Sgeo left
06:10
Doc_Holliwould joined
06:11
Doc_Holliwood left
06:27
ufobat joined
06:31
domidumont joined
06:40
fluca1978 joined
|
|||
fluca1978 | hi, I don't remember, but is there a way to load a class by its name? Like my $foo = 'Bar'; $foo.new; | 06:41 | |
06:44
ufobat left
06:45
ufobat joined
|
|||
moritz_ | m: my $name = 'Date'; say ::($name).new | 06:47 | |
camelia | Cannot call Date.new with no parameters in block <unit> at <tmp> line 1 |
||
moritz_ | m: my $name = 'Date'; say ::($name).today | 06:48 | |
camelia | 2021-04-07 | ||
moritz_ | fluca1978: ^^ like this, with ::($name) | ||
fluca1978 | moritz_: thanks | 06:49 | |
06:53
wamba joined,
abraxxa joined
06:58
kurahaupo joined,
Kaiepi joined,
abraxxa left,
abraxxa joined
06:59
kurahaupo left
07:03
fluca1978 left
07:22
Doc_Holliwould left
07:30
dakkar joined
07:41
kurahaupo joined
07:47
pecastro joined
|
|||
moritz_ | btw I just learned that the python equivalent of `Hash.keys` doesn't just return an iterator, but an iterable view on the hash keys that support membership test in O(1) | 07:52 | |
which is a pretty cool piece of technology, if you ask me | |||
07:58
sena_kun joined
08:01
aborazmeh joined
08:15
wamba left
|
|||
lizmat | moritz_ care to elaborate how that would look in Raku ? | 08:26 | |
moritz_ | lizmat: huh, good question. Maybe $key eq any(%h.keys()) ? | 08:27 | |
python has an "in" operator to test membership | |||
lizmat | $key (elem) %hash ? | 08:28 | |
moritz_ | I guess raku's closest would be the set membership test? | ||
lizmat | yup | ||
moritz_ | $key (elem) %hash.keys() | ||
lizmat | that would work too, but not needed | ||
m: my %h = a => 42; say "a" (elem) %h | |||
camelia | True | ||
moritz_ | does it currently work in O(1) or O(n)? | ||
lizmat | internally, that does an nqp::existskey | 08:29 | |
moon-child | lizmat: you can do that in python too. The concern is, if you have a Hash.keys object and you didn't get a copy of the original hash, you should be able to ∈ on that without it needing to be O(n) | ||
moritz_ | so it doesn't re-build a hash-link thingy for the (elem) operator from a list? | ||
lizmat | (elem) on a list just tests each element in turn | 08:31 | |
and stops when a match is found | |||
there's no point building a hash for that, as that would visit *each* element, wheras a short-circuiting linear search would look at all elements only in the worst case (no match) | 08:32 | ||
08:36
aborazmeh left
08:44
b2gills left
08:48
b2gills joined
08:51
ensamvarg is now known as adrian,
adrian is now known as ensamvarg,
patrickbkr[m] left,
Tirifto[m] left
08:52
draco100[m] left,
DarthGandalf joined
08:53
PotatoGim joined
08:58
takside joined
09:04
ensamvarg left
09:07
wamba joined,
aik|onl joined
09:09
patrickbkr[m] joined
09:12
draco100[m] joined
09:21
Tirifto[m] joined
09:29
cosimo joined
09:47
_jrjsmrtn joined,
__jrjsmrtn__ left
09:53
Doc_Holliwood joined,
|oLa| left
|
|||
jjatria | samebchase-: FWIW, that's sounds to me like the problem I had when I wrote raku.land/cpan:JJATRIA/Timer::Stopwatch | 10:11 | |
10:37
aluaces left
10:39
rindolf joined
10:47
aluaces joined
|
|||
samebchase- | Does anyone know what's happening with the Grammars for binary effort? | 10:50 | |
jjatria: Thanks! Let me check out this library | 10:51 | ||
10:55
|oLa| joined
|
|||
samebchase- | jjatria: the thing is I tried searching in modules.raku.org with combinations of "timeout", "channel", etc. but I guess I should have searched for "timer" | 10:56 | |
gist.github.com/alabamenhu/2fec7a8...4a2ae2f04d hmm | 10:59 | ||
11:05
abraxxa left
11:06
abraxxa joined
11:10
Black_Ribbon left
11:47
MasterDuke left
11:52
Doc_Holliwood left
12:18
kurahaupo left
12:24
wamba left,
kurahaupo joined
12:25
wamba joined
13:02
frost-lab left
|
|||
jjatria | samebchase-: Yeah, naming things is hard, searching for them too :) | 13:10 | |
I think I was thinking of the Go time.Timer struct when working on that, which might explain why I went with that | 13:11 | ||
I wrote about my initial use case here: pinguinorodriguez.cl/blog/porting-from-go | |||
jraspass | What's the raku equiv to Perl's custom charname aliases? perldoc.perl.org/charnames#CUSTOM-ALIASES , I found docs.raku.org/language/unicode#Name_aliases but it doesn't allow custom aliases afaict. | 13:45 | |
El_Che | jjatria: interesting | 13:46 | |
lizmat | jraspass: you can't atm afaik | 14:00 | |
14:00
Sgeo joined
14:09
b2gills left
|
|||
jraspass | I figured that would be the case, no worries. | 14:16 | |
14:30
b2gills joined
14:38
Doc_Holliwood joined
14:46
aindilis` joined
14:47
aindilis left
14:49
_jrjsmrtn left,
__jrjsmrtn__ joined
14:50
aindilis` left
14:51
aindilis joined
|
|||
demostanis[m] | Does Raku have Perl5-like formats? | 14:55 | |
jmerelo | demostanis[m]: yep. | 14:56 | |
demostanis[m] | With same syntax? | ||
jmerelo | demostanis[m]:mostly, yes. Let me find the reference for you | ||
demostanis[m]: I can't find it now. Give me a second. | 14:58 | ||
demostanis[m]: So, I take it back. No, there's no such thing. Apparently, that was an initial intention, wasn't done eventually. | 15:00 | ||
There are other templating systems you can use, however. But they are not native. | 15:01 | ||
15:02
parabolize joined
|
|||
demostanis[m] | That sucks... Was it not done because nobody was willing to do the work or for other reasons? | 15:05 | |
dakkar | p5 formats are very global, and rely on global state… so they are a bit out of place in raku | 15:06 | |
jmerelo | I don't really know... TBH, I didn't use it in Perl that much either. In the 90s, maybe. Now I would probably use YAML or JSON instead. | ||
15:06
mowcat joined
|
|||
dakkar | metacpan.org/pod/Perl6::Form this is probably what the proposal looked like | 15:07 | |
15:08
domidumont left
15:12
domidumont joined
15:21
leont left
15:24
leont joined,
wamba left,
kurahaupo left
15:25
kurahaupo joined
|
|||
Altreus | they're out of place in p5 | 15:27 | |
wanting them is really asking what to do instead :D | |||
15:31
Doc_Holliwood left
|
|||
demostanis[m] | <Altreus "they're out of place in p5"> `s/p5/p6`? What would be better? | 15:32 | |
dakkar | a templating system | 15:34 | |
(p5 format *are* a templating system, just a peculiar one) | |||
15:34
MasterDuke joined
|
|||
samebchase- | jjatria: Timer::Stopwatch is perfect for what I am trying to do! Thank you. | 15:35 | |
Altreus | Yeah, although depending on your use case there may be more specific tools | 15:39 | |
not sure what template systems are available for raku except Cro::Template | |||
presumably there's a mustache implementation | 15:40 | ||
dakkar | modules.raku.org/t/TEMPLATE more than one ☺ | 15:42 | |
Altreus | Personally I've learned that the only things I ever want to template are HTML, and template languages are not complex enough for HTML | 15:43 | |
[Coke] realizes he doesn't need DOM::Tiny at all since there's an API he can use, whee. | 15:44 | ||
Altreus | better off with a dom manipulator | ||
(Note: A manipulative dom may simply be abusive) | |||
jjatria | samebchase-: I'm glad to hear! | 15:48 | |
codesections | «what template systems are available for raku except Cro::Template» the not-yet-released-as-alpha-but-nearly-there project I've been hacking on recently (Catkin) will be in a similar space | 15:55 | |
It's less of a tempting system and more of a functional way to generate HTML (or other text output) from pure Raku code -- similar to how React/similar systems work | 15:56 | ||
dakkar | codesections: ooh, interesting | 15:57 | |
codesections | (well, except without the JSX layer in between, because Raku is flexible enough that we don't need it) | ||
Altreus | good because I hate doing { if condition } <span> {/if } ... {if condition} </span> {/if} | ||
dakkar | steal the nice bits, leave the nasty bits 😜 | 15:58 | |
16:17
mendel joined
|
|||
jdv79 | i wrote a pretty decent "XML generator template" thing for something at $work just using heredocs | 16:27 | |
much more interesting than Perl's offering there | 16:28 | ||
16:40
Wahnwitz joined
|
|||
Wahnwitz | hi there | 16:40 | |
16:40
dakkar left
16:41
ufobat left
|
|||
codesections | Wahnwitz: hi and welcome | 16:43 | |
Wahnwitz | i am get stuck:) .. I have a list with domain names. And i have a list with keywords. i would like to check whether a domain name contains one of the keywords. For now I read the keywords into a hash and the domain list is read with for (IO.lines). Is there a more elegant way rather than iterating over the keyword hash for each domain name? | ||
hope thats clear :) | 16:44 | ||
or.. is there a way to use contains(foo) without call it for each key element of an hash? like say "yea" if %hash.doesoneofthekeys.contains("bar") | 16:47 | ||
jdv79 | in Perl i might leverage the regex engine and build an alternation type pattern of all keywords and make one call for each of your haystacks (domain) | 16:50 | |
but Raku's regex engine is one of the worst performing parts so I'd not do that here. | 16:51 | ||
codesections | Wahnwitz, how about this: | 16:53 | |
m: my %kw = (:keyword-one, :keyword-two); say ['www.example.com', 'www.keyword-one.com', 'www.keyword-two.com'].grep: -> $dom { any %kw.keys.map: { $dom.contains: $_ }} | 16:54 | ||
camelia | (www.keyword-one.com www.keyword-two.com) | ||
Wahnwitz | i forgot to mention..i the hash i got pairs like "anwalt" -> "kategorie", "blabla" -> kategorie1" etc.. | 16:55 | |
ah..sorry | 16:56 | ||
oke..so far its working..but i need to say the value of the key :) | 16:59 | ||
16:59
xinming_ joined
|
|||
Wahnwitz | but "any" will help, thx for the hint | 17:01 | |
17:02
xinming left
|
|||
jdv79 | i don't think junctions autothread paralelly yet do they? | 17:03 | |
lizmat | no, they don't | ||
jdv79 | so that solution is "elegant" but in the future it *might* be more "performant" | 17:04 | |
lizmat | yeah, | 17:07 | |
though I would not expect it ever to be actually threading unless we're looking at junctions with at least 10s of eigenstates | |||
codesections | m: my %kw = (:keyword-one<kat0>, :keyword-two<kat1>); say ['www.example.com', 'www.keyword-one.com', 'www.keyword-two.com'].map: -> $dom { |%kw.map({ $dom.contains(.key) ?? .value !! Empty }) } | 17:08 | |
camelia | (kat0 kat1) | ||
codesections | ^^^ loses a bit in elegance/use of junctions, but prints the value. | ||
lizmat | jdv79: currently, I think it would make start to make sense at 10000+ eigenstates at the earliest to make a difference in wallclock | ||
Wahnwitz | wtf | ||
wheres the trick that it say now the value? | 17:09 | ||
17:10
domidumont left
|
|||
Wahnwitz | damn.. i forgot to say that the output need to be "domain;katN" :D | 17:11 | |
codesections | m: my %kw = (:keyword-one<kat0>, :keyword-two<kat1>); say ['www.example.com', 'www.keyword-one.com', 'www.keyword-two.com'].map: -> $dom { |%kw.map({ $dom.contains(.key) ?? "$dom;{.value}" !! Empty }) } | ||
camelia | (www.keyword-one.com;kat0 www.keyword-two.com;kat1) | ||
jdv79 | lizmat: at that point might as well use a regex alternation approach once it performs well. geez;) | ||
lizmat | jdv79: well, perhaps :-) I'm just saying that at the current state of things, there's no real point in auto-threading of junctions yet | 17:13 | |
it would only slow things down | |||
Wahnwitz | Thats beautiful :) | 17:14 | |
lizmat | and the static optimizer even changes something like $a == 1 | 2 | 3 into $a == 1 || $a == 2 || $a == 3 | ||
for sufficiently low number of eigenstates (forget if this was 2, 3 or 4) | |||
jdv79 | interesting. i think i've seen race speed things up with tens to hundreds and i'm assuming that's not terribly optimized yet. | 17:15 | |
Wahnwitz | codesections: a last question (anyway thx alot so far) how would this work when i do not have a list rather that just a single domain name (because in the loop there are other checks to do) | 17:16 | |
jdv79 | not really comparable though. apples to oranges. | ||
codesections | jdv79: tens to hundreds of items or batches? | ||
Wahnwitz | so (inside a loop) this works say $sld.map: -> $dom { |%branchen.map({ $dom.contains(.key) ?? "$dom;{.value}" !! Empty }) } | ||
jdv79 | items | 17:17 | |
17:17
vrurg left
|
|||
Wahnwitz | but i really dont need to map that single $sld value, right? | 17:17 | |
codesections | right. just use it in place of $dom | ||
17:17
MasterDuke left
17:18
vrurg joined,
vrurg left
|
|||
codesections | jdv79: interesting. When I've tried to use race, I haven't seen that sort of speedup. According to the docs, it has a default batch size of 64, so I thought there'd be 0 gain for ≤ 64 items (they'd all go to one worker). Am I confused, or are the docs wrong about the default batch size | 17:25 | |
lizmat | no, that's correct | 17:35 | |
but you need a batch size that is large enough so that the batch isn't finished before the scheduler is ready to cue another job | 17:36 | ||
otherwise you will never get parallelism | |||
codesections | yeah, I figured it was something like that (that is, I figured the default batch size was about as low as it could reasonably be, given the costs of parallelism -- which isn't exactly the same as not getting parallelism at all, but is similar in spirit) | 17:39 | |
Wahnwitz | my %branchen = (:anwalt<recht>, :fussball<sport>); say "anwalt".map: -> $dom { |%branchen.map({ $dom.contains(.key) ?? "$dom;{.value}" !! Empty }) }; | 17:40 | |
evalable6 | (anwalt;recht) | ||
Wahnwitz | that works..but since there is just one lingle label (anwalt) - .map seems to be not the way to go? | 17:41 | |
codesections | m: my %branchen = (:anwalt<recht>, :fussball<sport>); say given "anwalt" -> $dom {|%branchen.map({ $dom.contains(.key) ?? "$dom;{.value}" !! Empty }) }; | 17:43 | |
camelia | 5===SORRY!5=== Error while compiling <tmp> Unsupported use of bare "say". In Raku please use: .say if you meant to call it as a method on $_, or use an explicit invocant or argument, or use &say to refer to the function as a noun. at <tmp… |
||
codesections | m: my %branchen = (:anwalt<recht>, :fussball<sport>); say do given "anwalt" -> $dom {|%branchen.map({ $dom.contains(.key) ?? "$dom;{.value}" !! Empty }) }; | ||
camelia | (anwalt;recht) | ||
jdv79 | i could be misremembering. it was when race and hyper were implemented and i was foolin with all the knobs... | ||
Wahnwitz | codesections so the block is bind to "do given" than? | 17:44 | |
codesections | yeah. You could also put "anwalt" in a variable in any other way you like too, of course | 17:45 | |
Wahnwitz | ahh..the block wont work with just using say | 17:46 | |
my %branchen = (:anwalt<recht>, :fussball<sport>); | 17:47 | ||
my $sld = "anwalt"; say do given $sld { |%branchen.map({ $sld.contains(.key) ?? "$sld;{.value}" !! Empty }) }; | |||
jdv79 | sometimes i get the feeling raku is a 100 year lang that will take 50 to achieve most of its aspirations;) | ||
codesections | yeah (which I forgot when first typing the above). By default, given is a statement and doesn't return a value for &say | 17:48 | |
Wahnwitz | i see..thx again! | ||
this is really sexy | 17:49 | ||
codesections | jdv79: well, part of the point of being a 100 year language is that we have the flexibility to adapt as we add _new_ aspirations. So I hope we'll still have aspirations to achieve in 50+ years -- I just hope they'll be different ones | 17:50 | |
similarly, I'm not entirely sure how many of our currently unfulfilled aspirations were goals from a long time ago/which are newly acquired | 17:51 | ||
jdv79 | yeah, i know. im more talking about the "original" (if there is such a thing) vision. basically Perl on steroids. | 17:52 | |
Wahnwitz | hope so..but raku is really hard to learn | ||
codesections | unrelated question: an & reference to a sub is basically a pointer and thus pretty cheap to store/move, right? | 17:53 | |
m: sub f { say 'hi' }; my %h = (:key(&f)); %h<key>() | |||
camelia | hi | ||
codesections | e.g., storing &f in %h ^^^^ is not that costly/isn't copying anything large, right? | 17:54 | |
lizmat | nope | 17:55 | |
Wahnwitz | why not? | 17:56 | |
lizmat | because everything in Raku is an object | ||
so a sub is also an object | |||
Wahnwitz | and a reference on an object..is an object? | ||
lizmat | with a Perl mindset on, you could consider everything in Raku a reference | 17:57 | |
tobs | jdv79: so then Raku is bash on steroids on steroids? :-) | ||
lizmat | so there's no reference to take | ||
because you could argue, it is already a reference | |||
jdv79 | tobs: yes?;) | 17:59 | |
18:01
Wahnwitz left,
Wahnwitz joined
|
|||
Wahnwitz | probably with a little dose of LSD on top | 18:02 | |
18:02
aborazmeh joined
|
|||
lizmat | .oO( with the doors of perception wide open ) |
18:03 | |
18:03
patrickb joined
|
|||
Wahnwitz | :) | 18:03 | |
18:04
kurahaupo left
18:05
kurahaupo joined
|
|||
Wahnwitz | codesections: the Junction operator(?) is not needed right? Is there a reason why you put it infront of the hash? | 18:06 | |
18:09
kurahaupo left
|
|||
codesections | oh, that | was a Slip operator, and isn't needed any more. In one of the earlier versions it was flattening the resulting list so that it wasn't nested. But now you're returning a Str, so it's not doing anything | 18:10 | |
Wahnwitz | mhm.. i got the "lerning perl6" book from brian.. thats not mentioned there :) | 18:11 | |
jdv79 | really? nothing bout "flat,Slip,|"? | 18:13 | |
Wahnwitz | .slip yes - but not the use of | therefore | ||
| is only described regarding Junctions (as far as i dig it..) | 18:14 | ||
jdv79 | might wanna shoot him an email. weird... | 18:15 | |
i havent read any books cept shitovs so far | |||
Wahnwitz | :D | 18:16 | |
18:21
kurahaupo joined
18:25
kurahaupo left
|
|||
Wahnwitz | ah..the | is already described in the "flattening list" chapter, but in the index it only links to the Junction section | 18:31 | |
18:32
abraxxa left
18:33
abraxxa joined
18:34
kurahaupo joined,
stoned75 left
18:38
MasterDuke joined
18:39
kurahaupo left
18:44
stoned75 joined
18:50
wamba joined
|
|||
Wahnwitz | mhm..just poking around...i have moved that way into a given statement and that wont work: given $sld { when %branchen.map({ $sld.contains(.key) }) { say "yehhh"; } } | 18:52 | |
but it should? | |||
seems that .key is missing there | 18:53 | ||
%branchen.map({ $sld.contains(.key)}; could be seen as an iteration over %branchen .. or does I miss something? | 18:56 | ||
18:57
Black_Ribbon joined
|
|||
MasterDuke | you might want .first instead of .map? | 18:57 | |
Wahnwitz | No such method 'reise' for invocant of type 'Str' | 19:01 | |
Did you try to smartmatch against a Pair specifically? If so, then the | |||
key of the Pair should be a valid method name, not 'reise'. | |||
"reise" is the value of the keyword in this case | |||
19:01
Doc_Holliwood joined
|
|||
Wahnwitz | weird | 19:01 | |
19:02
vrurg joined
|
|||
Wahnwitz | %branchen = (:anwalt<recht>, :fussball<sport>); my $sld = "anwalt"; given $sld { when %branchen.first({ $sld.contains(.key) }) { say "yehhh"; } } | 19:06 | |
m: %branchen = (:anwalt<recht>, :fussball<sport>); my $sld = "anwalt"; given $sld { when %branchen.first({ $sld.contains(.key) }) { say "yehhh"; } } | 19:07 | ||
camelia | 5===SORRY!5=== Error while compiling <tmp> Variable '%branchen' is not declared at <tmp>:1 ------> 3<BOL>7⏏5%branchen = (:anwalt<recht>, :fussball<s |
||
Wahnwitz | m: my %branchen = (:anwalt<recht>, :fussball<sport>); my $sld = "anwalt"; given $sld { when %branchen.first({ $sld.contains(.key) }) { say "yehhh"; } } | ||
camelia | No such method 'anwalt' for invocant of type 'Str'. Or did you try to smartmatch against a Pair specifically? If so, then the key of the Pair should be a valid method name, not 'anwalt'. in block <unit> at <tmp> line 1 |
||
Wahnwitz | m: my %branchen = (:anwalt<recht>, :fussball<sport>); my $sld = "anwalt"; say do given $sld { %branchen.map({ $sld.contains(.key) ?? "$sld;{.value}" !! Empty }) }; | ||
camelia | (anwalt;recht) | ||
Wahnwitz | from my understanding it looks like very similar:/ | 19:08 | |
mhm ok.. putting the into another block helps | 19:11 | ||
*map | |||
m: my %branchen = (:anwalt<recht>, :fussball<sport>); my $sld = "anwalt"; given $sld { when { %branchen.first({ $sld.contains(.key) })} { say "yehhh"; } } | 19:12 | ||
camelia | yehhh | ||
19:17
stoned75 left
|
|||
Wahnwitz | oh noo....key is now outside of the block :D | 19:17 | |
19:19
stoned75 joined
19:29
rypervenche joined
|
|||
Wahnwitz | that drives me crazy.. | 19:29 | |
19:31
vrurg left
19:44
kurahaupo joined
19:48
neshpion joined
19:52
stoned75 left
19:58
Doc_Holliwould joined,
Doc_Holliwood left
20:02
Wahnwitz left
20:03
patrickb left
20:06
aborazmeh left,
El_Che left
20:08
El_Che joined
20:16
vrurg joined,
guifa joined
20:18
kurahaupo left
20:25
vrurg left
20:29
kurahaupo joined
20:43
abraxxa left
20:45
abraxxa joined
20:47
vrurg joined,
MasterDuke left,
MasterDuke joined
20:49
kurahaupo left
20:51
vrurg left
20:52
vrurg joined
20:57
vrurg left
20:59
MilkmanDan left,
MilkmanDan joined,
kurahaupo joined
21:04
aborazmeh joined
|
|||
Doc_Holliwould | as an entry for 99-bottles-of-beer.net/, is this too convoluted? pastebin.com/dykj69P1 | 21:21 | |
21:28
Doc_Holliwood joined,
Doc_Holliwould left
|
|||
Doc_Holliwood | i need a new router | 21:29 | |
21:35
xinming_ left
21:38
kurahaupo left
21:44
kurahaupo joined
21:45
PlayPause9 left
21:48
abraxxa left
|
|||
guifa | Doc_Holliwood: nice | 21:49 | |
Doc_Holliwood | uh, thanks. means something if it comes from you | 21:50 | |
21:51
abraxxa joined
|
|||
Doc_Holliwood | that probably sounded sarcastic. was not meant to be. | 21:51 | |
guifa | One thing that’s interesting is the number of ways almost all of the lines can be done | ||
21:52
kurahaupo left
|
|||
guifa | For instance, I tend to use { $n == 1 ?? ‘bottle’ !! ‘bottles’ }, just because it feels more maintanable if you were to switch to, I dunno, geese or something haha | 21:53 | |
moon-child | I would prefer a separate function plur('bottle',$n) | ||
Doc_Holliwood | had that, i figured it would be distracting | 21:54 | |
guifa | moon-child: yeah, for a larger project absolutely | ||
Doc_Holliwood | the sep function i mean | ||
it is also known one can only put maximum of 10 geese on a wall =) | 21:55 | ||
guifa | The variable naming is good too, it helps showing what’s going on | ||
Doc_Holliwood | you can put up to 20 geese on a tree though | 21:56 | |
guifa | 🌳🦢🦢🦢🦢🦢🦢🦢🦢🦢🦢🦢🦢🦢🦢🦢🦢🦢🦢🦢🦢 | ||
(okay those are swans but whatever, close enough) | 21:57 | ||
Have you thought about using do at all? It’s kind of a cool variant of for that sometimes can read better than map | 21:58 | ||
errm | |||
do for | |||
21:58
mowcat left
|
|||
moon-child | gather for could be cool too | 21:58 | |
guifa | oh | ||
yes | |||
Doc_Holliwood | gather for works | ||
guifa | take $one-down | 21:59 | |
21:59
kurahaupo joined
|
|||
guifa | ^_^ | 21:59 | |
Doc_Holliwood | m: say join "-", gather for 1..10; | ||
camelia | 5===SORRY!5=== Error while compiling <tmp> Missing block at <tmp>:1 ------> 3say join "-", gather for 1..107⏏5; expecting any of: block or pointy block |
||
Doc_Holliwood | m: say join "-", gather for 1..10 { take $_ }; | ||
camelia | 1-2-3-4-5-6-7-8-9-10 | ||
moon-child | m: say join '-', gather .take for 1..10 | 22:00 | |
camelia | 1-2-3-4-5-6-7-8-9-10 | ||
guifa | m: say join '-', do $_ for 1..10 # if you want to avoid taking | 22:01 | |
camelia | 1-2-3-4-5-6-7-8-9-10 | ||
guifa | Actually, it’s really cool how a song like that can show off so many different ways of doing stuff | ||
Doc_Holliwood | It's trickier than it looks because of the edge cases | 22:03 | |
if you simply hack it down you end up with nested ifs | |||
and arguably ugly code | |||
guifa is trying to think of a one liner for it haha | 22:04 | ||
Doc_Holliwood | good luck | 22:05 | |
i'm out for the night | |||
22:06
aluaces left
|
|||
guifa | m: sub temp-change { CALLERS::<$*foo> = $*foo + 1 }; my $*foo = 0; say $*foo; { temp-change; say $*foo }; say $*foo | 22:08 | |
camelia | 0 1 1 |
||
guifa | is there naything I can do inside of temp-change so that the output is 0 1 0? | ||
moon-child | not quite the same, but | 22:11 | |
m: my $foo = 0; say $foo; { temp $foo = 1 + $foo; say $foo; }; say $foo | 22:12 | ||
camelia | 0 1 0 |
||
22:26
wamba left
22:40
Doc_Holliwood left
22:41
rindolf left
|
|||
guifa | moon-child: yeah, I’m trying to hide a setting in the dynamic variable that’s inserted into the symbol table with a ‘use’ statement | 22:54 | |
22:54
abraxxa left
|
|||
guifa | and then have a sub adjust it for a lexical block | 22:54 | |
22:56
abraxxa joined
23:12
Zoommmx joined,
Zoommmx left
23:23
sxmx left
23:39
pecastro left
|
|||
moon-child | guifa: temp works for dynamic variables too. I don't think a sub can insert a declaration into its parent | 23:40 | |
but perhaps it would be possible to insert a LEAVE phaser? | |||
(This is a little bit similar to the way that dynamic variables are approximated in s7 scheme) | |||
23:43
sxmx joined
23:56
AncientWizard joined
23:59
abraxxa left
|