Из документации
duckmap
будет применять&block
к каждому элементу и возвращать новый список с определенными возвращаемыми значениями блока. Для неопределенных возвращаемых значенийduckmap
попытается спуститься в элемент, если этот элемент реализуетIterable
.
Но потом:
my $list = [[1,2,3],[[4,5],6,7]];
say $list.deepmap( *² ); # [[1 4 9] [[16 25] 36 49]]
say $list.duckmap( *² ); # [9 9]
DeepMap ведет себя почти так же, как и ожидалось, но я не могу понять, что делает duckmap
.
Этот вопрос связан с этой проблемой в perl6/doc. Это можно решить с помощью "Они не могут быть более разными", но я хотел бы найти несколько примеров, когда они делают то же самое, а когда нет, постарайтесь действительно понять, что происходит.