repeated
方法将函数用作参数,以在找出重复的元素之前对元素进行规范化。但是,我看不出它可以与values
一起使用。例如:
%(:a(3),:b(3),:c(2)).repeated( as=> *.values ).say
返回一个空列表,而我希望对:a(3)和:b(3)与
相同%(:a(3),:b(3),:c(2)).repeated( as=> .values ).say
例如,在这种情况下,它似乎可以正常工作:
(3+3i, 3+2i, 2+1i).unique(as => *.re).say # OUTPUT: «(3+3i 2+1i)»
有什么想念我的地方吗?
答案 0 :(得分:10)
.values
是一种用于返回容器的所有值的方法。
由于它是一个List方法,因此如果您以一个奇异值调用它,它就会假装它是一个仅包含该值的List。
say 5.values.perl;
# (5,)
在所有奇异值上调用.repeated
的as
命名参数。
%(:a(3),:b(3),:c(2)).repeated( as=> *.perl.say );
# :a(3)
# :b(3)
# :c(2)
因此,通过给其*.values
lambda,实际上并没有做任何有用的事情。
%(:a(3),:b(3),:c(2)).repeated( as=> *.value ).say
# (a => 3)