在 Any 中§
有关方法 nodemap 的主要文档,请参阅 上下文
method nodemap( --> List) is nodal
nodemap
将对每个元素应用 &block
并返回一个包含 &block
返回值的新 List
。与 deepmap 相反,如果它找到执行 Iterable
角色的元素,它将不会递归下降到子列表中。
say [[1,2,3], [[4,5],6,7], 7].nodemap(*+1);# OUTPUT: «(4, 4, 8)»say [[2, 3], [4, [5, 6]]]».nodemap(*+1)# OUTPUT: «((3 4) (5 3))»
如果我们使用 map 而不是 nodemap
,则上面的示例将产生完全相同的结果。两者之间的区别在于 map 会展平 Slip
,而 nodemap
不会。
say [[2,3], [[4,5],6,7], 7].nodemap();# OUTPUT: «(() () 7)»say [[2,3], [[4,5],6,7], 7].map();# OUTPUT: «(7)»
当应用于 Associative
时,它将作用于值
.nodemap( *.flip ).say;# OUTPUT: «{this => gniht, what => si}»