group

From The K Language Wiki
Group
=x

The group primitive, denoted by =, is used to group the indices of an array by the values they represent in the array, returning a dictionary.

 =`a`a`b`c`c`d`c`a`a`k
`a`b`c`d`k!(0 1 7 8;,2;3 4 6;,5;,9)

The keys from the group dictionary represent the distinct elements of the array.

 ="abracadabra"
"abrcd"!(0 3 5 7 10;1 8;2 9;,4;,6)

 !="abracadabra"
"abrcd"
 ?"abracadabra"
"abrcd"
Works in: ngn/k

In K2 and K3, the group primitive returns a nested array:

 ="abracadabra"
(0 3 5 7 10
 1 8
 2 9
 ,4
 ,6)
Works in: Kona

In order to mimic the K6 behaviour, you can use distinct: {(?x)!=x} to get a dict.

 {(?:x)!=x}`a`a`b`c
.((`a
   0 1
   )
  (`b
   ,2
   )
  (`c
   ,3
   ))
Works in: Kona