Wow. Just when I think I'm starting to get proficient in the language... M (4 $. [: $. =) 6 32 58 0 1 1 1 2 2 2 3 3
This sparse array approach behaves differently from my proposal for an edge condition (lookup not found): M (4 $. [: $. ="_ 0~) 99 NB. Empty result for "not found" M (([: $ [) #: ] i.~ [: , [) 99 NB. versus potentially misleading result. 0 0 0 I stumbled on this in my attempt to accommodate an array right argument with Ric's solution: M ([: 4&$.@:$. ="_ 0~) 2 3$6 7 8 32 58 59 0 1 1 0 0 0 1 2 0 1 0 1 3 0 2 1 2 2 1 0 2 3 3 1 1 2 3 4 1 2 This appears to indicate the indexes into the left argument in the first 3 columns and the indexes of the corresponding items on the right in the last two columns (because a 3D argument on the left and a 2D argument on the right). ---------------------------------------------------------------------- For information about J forums see http://www.jsoftware.com/forums.htm
