10

Is there some method in Raku which, when you pass it a "getter", groups together items from the original list for which the getter is returning the same value?

I am looking for something like groupBy in 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))

Or groupBy from Lodash (JavaScript):

> groupBy(range(1, 10), x => x % 3)
{"0": [3,6,9], "1": [1,4,7], "2": [2,5,8]}

1 Answer 1

16

It's called classify in Raku:

$ raku -e 'say (1..10).classify(* % 3)'
{0 => [3 6 9], 1 => [1 4 7 10], 2 => [2 5 8]}         

Not the answer you're looking for? Browse other questions tagged or ask your own question.