stevied alright, thanks to everyone who has helped me. I was able to convert my module over to OO. It works, though I'm sure there's lots of room for improvement. Sorry it won't be useful to probably anyone: github.com/sdondley/Karabiner-CompModGenerator 00:13
04:50 CIAvash joined
gfldex @stevied#8273 You can do even more OO in Template.rakumod by replacing line 20-26 with `render-list(|@values).join.trim-trailing` 10:44
10:59 Guest35 joined 11:00 Guest35 left
m:``` 11:04
my @params = <a b c>.map: { Parameter.new(:name('$' ~ $_)) };
my $sig = Signature.new(:@params);
say $sig;
```
m:``` 11:05
my @params = <a b c>.map: { Parameter.new(:name('$' ~ $_)) };
my $sig = Signature.new(:@params, :returns(Str));
say $sig;
```
stevied ok, cool. I'll check it out 11:06
gfldex @stevied#8273 Please note that Rakudo doesn't like to precompile MONKEYs.
stevied funny, I just posted a question to rakuland on reddit about this
rakulang 11:07
www.reddit.com/r/rakulang/comments...egantraku/
ah, yes. a signature object. that is so obvious I missed it šŸ™‚ 11:08
gfldex I'm checking right now if that is an ENODOC. 11:09
Signature.new and Parameter.new are not in roast. So this might be an ENOSPEC. 11:11
stevied not familiar with those terms
gfldex ENODOC means: No where to be found on docs.raku.org/ 11:13
ENOSPEC means: No where to be found in github.com/raku/roast
Any advanced Raku-beginner (you can read most Raku code) is well advised to read roast. This can lead to many ohh-that-works-too-?-moments. 11:15
stevied yeah, so using .join doesn't work. The render-list function returns a sequence 11:17
ok, thanks. I'll poke through that and see what I can figure out 11:18
actually, I think the larger problem is Template::Classic uses `gather` so I have to make separate class to $out to get everything out. There's probably a better way, but using a block method was all I could figure out 11:20
actually, I think the larger problem is Template::Classic uses `gather` so I have to make separate calss to $out to get everything out. There's probably a better way, but using a block method was all I could figure out
gfldex m:``` 11:28
class C {
has $.foo;
has $.bar;
method desc_gen {
say self.^attributesĀ».nameĀ».substr(2).map: { $_ => self."$_"() };
}
}
C.new(:foo(42)).desc_gen;
```
That should eliminate the 2nd EVAL.
`.join` should work on a `Seq`. Sometimes you have to sneak a `.cache` in, tho. 11:29
stevied @gfldex#8222 that signature object worked perfectly. nice. 11:30
just had to change :returns(Str) to :returns(Seq). 11:32
that code above is pretty tricky. man 11:36
seems to work, though. awesome 11:42
i'll have to study that
@gfldex#8222 OK! I still got an amateurish loop to extract out the attributes names and value but got rid of the eval. Thanks! 11:57
```
my @test_values = self.^attributesĀ».nameĀ».substr(2).map: { $_, self."$_"() };
for @test_values -> $pair {
push @usage_names, $pair[0];
push @values, $pair[1];
}
```
Tried using .join.cache and .cache.join methods. no luck. I keep getting ... for the output. maybe I'm using .cache wrong? 12:09
gfldex If you get `...` you are calling `.gist` indirectly. 12:14
stevied here's the Template::Classic module: modules.raku.org/dist/Template::Cl...lassic.pm6 12:18
it does a lazy gather. I still haven't figure out how that works, exactly. 12:19
gfldex m: dd (1..10).grep(* %% 2).map(* * 10).head(2); 14:30
m:``` 14:31
class Generator does Iterable {
has $.code;
has $.input;
method iterator {
class :: does Iterator {
has $.code;
has $.input;
method pull-one {
loop {
my \value = $.input.pull-one;
next if value =:= Empty;
@stevied#8273 the two examples show what is going on under the hood. There is more to laziness, this is quite simplified. 14:32
tailgate if I have a string i know is even length, how do I break it up into a list of 2 character substrings? e.g "ABCDEF" -> ("AB" "CD" "EF") 16:11
lizmat "ABCDEF".comb(2) 16:13
tailgate thanks! 16:17
stevied ok, thanks! I'l be looking at all your suggestions and code for my homework today 17:20
19:15 discord-raku-bot left, discord-raku-bot joined 19:20 discord-raku-bot left, discord-raku-bot joined 19:52 discord-raku-bot left, discord-raku-bot joined 19:56 discord-raku-bot left 19:57 discord-raku-bot joined 20:18 discord-raku-bot left, discord-raku-bot joined 20:22 gfldex left, gfldex joined 20:23 discord-raku-bot left, discord-raku-bot joined 21:19 discord-raku-bot left, discord-raku-bot joined 21:22 gfldex left, gfldex joined 22:13 discord-raku-bot left, discord-raku-bot joined 22:17 discord-raku-bot left 22:18 discord-raku-bot joined 23:52 Manifest0 left