(also: ask questions in StackOverflow whenever possible :-) ) El mar., 12 jun. 2018 a las 9:09, JJ Merelo (<jjmer...@gmail.com>) escribió:
> Use binding: > > my @x= <1 2 3>; my @y := @x but Iterable; say @y.^name; # OUTPUT: > «Array+{Iterable}» > > El mar., 12 jun. 2018 a las 9:06, Joseph Brenner (<doom...@gmail.com>) > escribió: > >> I thought this would work to make a copy of @x but with the role >> "LookInside" attached to it: >> >> my @y = @x but LookInside; >> >> But that didn't add the role to @y. E.g. >> >> say @y.^WHAT >> >> Would just report (Array), not (Array+{LookInside}). >> >> I found that this would do what I was trying to do though: >> >> my @y = @x; >> @y does LookInside; >> >> I didn't think there would be any difference between the two >> though. What am I not getting? >> >> The full code looks like this: >> >> trial_introspect.pl6: >> >> use v6; >> use Trial::Introspect; >> my @x = <wuhn tew thuree foah fahv sex>; >> my @y = @x; >> @y does LookInside; >> say "Methods: "; >> say @y.methodical_methods; >> >> >> .../Trial/Introspect.pm6: >> >> role LookInside { >> method methodical_methods { >> self.^methods.map({ .gist }).sort.unique.map({ "$_\n" }).grep({ >> ! /^Method/ }); >> } >> } >> > > > -- > JJ > -- JJ