I forgot to point out earlier that

     6 12 $ ? 72 $ 10

may be defined more succinctly as

     ? 6 12 $ 10

FWIW,  I had a look at an alternative approach,  working on the union of all rows:

    union =: ~.@:,     NB. ie nub of the ravel

    rix =: (] #~ */@:(e."1)~) union   NB. another row intersection verb


It works,  but is more verbose,  uses more memory and more cp time for the limited

cases I've explored.


Mike




On 01/09/2017 08:40, 'Mike Day' via Programming wrote:
The main requirement is to obtain the set-intersection of the rows:

   rowintersection =: ([-.-.)&~./

(The &~. isn't essential,  but it will save space for large arrays with significant repetition.)


(Drafting this,  I see Raul's beaten me to it,  though he didn't include the &~. !!!)


Also,

    colintersection =: rowintersection@:|:



Cheers,


Mike




On 01/09/2017 07:48, Skip Cave wrote:
  ]a =: 6 12$ ?72$10



---
This email has been checked for viruses by Avast antivirus software.
https://www.avast.com/antivirus
----------------------------------------------------------------------
For information about J forums see http://www.jsoftware.com/forums.htm

----------------------------------------------------------------------
For information about J forums see http://www.jsoftware.com/forums.htm

Reply via email to