Intersection: Difference between revisions

Jump to navigation Jump to search
808 bytes added ,  22:14, 10 September 2022
m
Text replacement - "</source>" to "</syntaxhighlight>"
(Created page with "{{Built-in|Intersection|∩}} is a dyadic set function which computes the set intersection of the two vector argument|arg...")
 
m (Text replacement - "</source>" to "</syntaxhighlight>")
 
(3 intermediate revisions by the same user not shown)
Line 3: Line 3:
== Examples ==
== Examples ==


Both arguments of Intersection is usually restricted to [[vector|vectors]]. Unlike sets in the mathematical sense, duplicate elements are allowed in both sides, and Intersection is usually implemented as "left argument [[replicate|filtered]] by its [[membership|existence]] in the right argument" <source lang=apl inline>(X∊Y)/X</source>, which preserves the order and multiplicity in the left argument. Both arguments can be [[nested array|nested arrays]].
Both arguments of Intersection is usually restricted to [[vector|vectors]]. Unlike sets in the mathematical sense, duplicate elements are allowed in both sides, and Intersection is usually implemented as "left argument [[replicate|filtered]] by its [[membership|existence]] in the right argument" <syntaxhighlight lang=apl inline>(X∊Y)/X</syntaxhighlight>, which preserves the order and multiplicity in the left argument. Both arguments can be [[nested array|nested arrays]].


<source lang=apl>
<syntaxhighlight lang=apl>
       'ABRA'∩'CAR'
       'ABRA'∩'CAR'
ARA
ARA
Line 17: Line 17:
│AND│
│AND│
└───┘
└───┘
</source>
</syntaxhighlight>


== Extension ==
Some dialects allow Intersection to work on [[major cell]]s:
[https://tio.run/##SyzI0U2pTMzJT9dNrShJzUtJTfn/P@JR2wQTBaNHvVvUHR2dnJyBQJ0rEihojBB0dFTnetQ3FSgY8ahjZeT//wA Try it online!]<syntaxhighlight lang=apl>
      X←4 2⍴'AABBCCCC'
      Y←3 2⍴'AABBAA'
      X∩Y
AA
BB
</syntaxhighlight>{{Works in|[[Extended Dyalog APL]]}}
Others can easily define such a function:
[https://tio.run/##SyzI0U2pTMzJT///P@JR2wQTBaNHvVvUHR2dnJyBQJ0rEihojBB0dFTn8swrSS0qTk0uyczPA8pWP@rd9ahn/6PeFRqPOhc96t2q@ahzKZB61LsZKFPL9ahvKlBVhAKyNoXI//8B Try it online!]<syntaxhighlight lang=apl>
      X←4 2⍴'AABBCCCC'
      Y←3 2⍴'AABBAA'
      Intersection←{⍺⌿⍨(≢⍵)≥⍵⍳⍺}
      X Intersection Y
AA
BB
</syntaxhighlight>{{Works in|[[Dyalog APL]]}}
== External Links ==
== External Links ==


=== Documentation ===
=== Documentation ===


* [http://help.dyalog.com/latest/#Language/Primitive%20Functions/Intersection.htm Dyalog]
* [https://help.dyalog.com/latest/#Language/Primitive%20Functions/Intersection.htm Dyalog]
* [http://microapl.com/apl_help/ch_020_020_394.htm APLX]
* [http://microapl.com/apl_help/ch_020_020_394.htm APLX]


{{APL built-ins}}[[Category:Primitive functions]][[Category:Set functions]]
{{APL built-ins}}[[Category:Primitive functions]][[Category:Set functions]]

Navigation menu