Membership: Difference between revisions

Jump to navigation Jump to search
m
no edit summary
mNo edit summary
 
(6 intermediate revisions by 2 users not shown)
Line 1: Line 1:
{{Built-in|Membership|∊}}, also called '''Member Of''' or '''Member In''', is a [[dyadic]] [[primitive function]] which tests if each of the elements of the left [[argument]] appears as an element of the right argument. Membership derives from the traditional mathematical notation <math>\in</math> (''Element of'') and therefore uses that [[glyph]] (lunate epsilon).
{{Built-in|Membership|∊}}, also called '''Member In''', '''Member Of''', or '''Element Of''', is a [[dyadic]] [[primitive function]] which tests if each of the elements of the left [[argument]] appears as an element of the right argument. Membership derives from the traditional mathematical notation <math>\in</math> (''Element of'') and therefore uses that [[glyph]] (lunate epsilon).


== Examples ==
== Examples ==
Line 5: Line 5:
Both arguments can be arrays of any [[shape]]. Each element of the left argument is tested against elements of the right argument, and the result is a [[boolean]] array having the same shape as the left argument.
Both arguments can be arrays of any [[shape]]. Each element of the left argument is tested against elements of the right argument, and the result is a [[boolean]] array having the same shape as the left argument.


<source lang=apl>
<syntaxhighlight lang=apl>
       'THIS NOUN'∊'THAT WORD'
       'THIS NOUN'∊'THAT WORD'
1 1 0 0 1 0 1 0 0
1 1 0 0 1 0 1 0 0
Line 14: Line 14:
0 0 1
0 0 1
0 0 1
0 0 1
</source>
</syntaxhighlight>


For [[nested array|nested arrays]], Membership tests for exact [[match]] between the elements.
For [[nested array|nested arrays]], Membership tests for exact [[match]] between the elements.


<source lang=apl>
<syntaxhighlight lang=apl>
       'CAT' 'DOG' 'MOUSE' ∊ 'CAT' 'FOX' 'DOG' 'LLAMA'
       'CAT' 'DOG' 'MOUSE' ∊ 'CAT' 'FOX' 'DOG' 'LLAMA'
1 1 0
1 1 0
</source>
</syntaxhighlight>


=== Leading axis model ===
=== Leading axis model ===


The behavior of Membership was changed to follow [[leading axis model]] in some implementations such as [[J]] (spelled <source lang=j inline>e.</source>). In this case, if the right argument is a higher-[[rank]] array, the [[cell|cells]] of the left argument with appropriate rank are compared against the [[major cell|major cells]] of the right argument.
The behavior of Membership was changed to follow [[leading axis model]] in some implementations such as [[J]] (spelled <syntaxhighlight lang=j inline>e.</syntaxhighlight>). In this case, if the right argument is a higher-[[rank]] array, the [[cell|cells]] of the left argument with appropriate rank are compared against the [[major cell|major cells]] of the right argument.


<source lang=j>
<syntaxhighlight lang=j>
       ]mat=.>'able';'acre';'idle'
       ]mat=.>'able';'acre';'idle'
able
able
Line 42: Line 42:
1 1 1
1 1 1
1 1 1
1 1 1
</source>
</syntaxhighlight>
In other dialects, a leading axis membership function can be defined as:
In other dialects, a leading axis membership function can be defined as:
<source lang=apl>
<syntaxhighlight lang=apl>
       E←{(≢⍵)≥⍵⍳⍺}
       Membership←{(≢⍵)≥⍵⍳⍺}
       ⎕←mat←3 4⍴'ableacreidle'
       ⎕←mat←3 4⍴'ableacreidle'
able
able
acre
acre
idle
idle
       'able' E mat
       'able' Membership mat
1
1
</source>{{Works in|[[Dyalog APL]], [[NARS2000]], [[dzaima/APL]], [[Extended Dyalog APL]], [[GNU APL]]}}
</syntaxhighlight>{{Works in|[[Dyalog APL]], [[NARS2000]], [[dzaima/APL]], [[Extended Dyalog APL]], [[GNU APL]]}}


== See also ==
* [[Equal to]]
* [[Match]]
* [[Find]]
* [[Index of]]
== External links ==
== External links ==


Line 61: Line 66:
* [http://microapl.com/apl_help/ch_020_020_380.htm APLX]
* [http://microapl.com/apl_help/ch_020_020_380.htm APLX]
* J [https://www.jsoftware.com/help/dictionary/dedot.htm Dictionary], [https://code.jsoftware.com/wiki/Vocabulary/edot#dyadic NuVoc]
* J [https://www.jsoftware.com/help/dictionary/dedot.htm Dictionary], [https://code.jsoftware.com/wiki/Vocabulary/edot#dyadic NuVoc]
* [https://mlochbaum.github.io/BQN/doc/search.html#member-of BQN]


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

Navigation menu