Есть ли в Raku какой-то метод, который, когда вы передаете ему «геттер», группирует элементы из исходного списка, для которых геттер возвращает одно и то же значение?
Я ищу что-то вроде groupBy
в Scala:
@ (1 until 10).groupBy(_ % 3)
res0: Map[Int, IndexedSeq[Int]] = HashMap(0 -> Vector(3, 6, 9), 1 -> Vector(1, 4, 7), 2 -> Vector(2, 5, 8))
Или groupBy
из Lodash (JavaScript):
> groupBy(range(1, 10), x => x % 3)
{"0": [3,6,9], "1": [1,4,7], "2": [2,5,8]}
В Раку это называется классифицировать:
$ raku -e 'say (1..10).classify(* % 3)'
{0 => [3 6 9], 1 => [1 4 7 10], 2 => [2 5 8]}