该repeated方法将函数作为参数,用于在找出重复哪些元素之前对元素进行标准化.但是,我无法看到它与之合作values.例如:
%(:a(3),:b(3),:c(2)).repeated( as=> *.values ).say
Run Code Online (Sandbox Code Playgroud)
返回一个空列表,而我期待对:a(3)和:b(3),相同
%(:a(3),:b(3),:c(2)).repeated( as=> .values ).say
Run Code Online (Sandbox Code Playgroud)
例如,在这种情况下,它似乎按预期工作:
(3+3i, 3+2i, 2+1i).unique(as => *.re).say # OUTPUT: «(3+3i 2+1i)?»
Run Code Online (Sandbox Code Playgroud)
知道我在这里缺少什么吗?
Bra*_*ert 10
.values 是一种返回容器的所有值的方法.
由于它是一个List方法,如果你在一个奇异值上调用它,它假装它只是一个只包含该值的List.
say 5.values.perl;
# (5,)
Run Code Online (Sandbox Code Playgroud)
在所有奇异值上调用get 的as命名参数.repeated.
%(:a(3),:b(3),:c(2)).repeated( as=> *.perl.say );
# :a(3)
# :b(3)
# :c(2)
Run Code Online (Sandbox Code Playgroud)
因此,通过赋予它*.valueslambda,它实际上没有做任何有用的事情.
%(:a(3),:b(3),:c(2)).repeated( as=> *.value ).say
# (a => 3)
Run Code Online (Sandbox Code Playgroud)