Without: Difference between revisions

Jump to navigation Jump to search
91 bytes added ,  10:58, 11 September 2022
m
Text replacement - "<source" to "<syntaxhighlight"
No edit summary
m (Text replacement - "<source" to "<syntaxhighlight")
 
(2 intermediate revisions by the same user not shown)
Line 1: Line 1:
{{Built-in|Without|~}}, '''Set Difference''', '''Excluding''', or '''Less''', is a [[dyadic]] [[set function]] which computes the [[wikipedia:set difference|set difference]] of the two [[vector]] [[argument|arguments]]. It shares the [[glyph]] <source lang=apl inline>~</source> with the monadic function [[Not]].
{{Built-in|Without|~}}, '''Set Difference''', '''Excluding''', or '''Less''', is a [[dyadic]] [[set function]] which computes the [[wikipedia:set difference|set difference]] of the two [[vector]] [[argument|arguments]]. It shares the [[glyph]] <syntaxhighlight lang=apl inline>~</syntaxhighlight> with the monadic function [[Not]].


== Examples ==
== Examples ==


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


<source lang=apl>
<syntaxhighlight lang=apl>
       'HELLO'~'GOODBYE'
       'HELLO'~'GOODBYE'
HLL
HLL
Line 13: Line 13:
│THIS│THAT│
│THIS│THAT│
└────┴────┘
└────┴────┘
</source>
</syntaxhighlight>


== Extension ==
== Extension ==
Some dialects allow Without to work on [[major cell]]s:
Some dialects allow Without to work on [[major cell]]s:
[https://tio.run/##SyzI0U2pTMzJT9dNrShJzUtJTfn/P@JR2wQTBaNHvVvUHR2dnJyBQJ0rEihojBB0dFTnetQ3FSgYURf5/z8A Try it online!]<source lang=apl>
[https://tio.run/##SyzI0U2pTMzJT9dNrShJzUtJTfn/P@JR2wQTBaNHvVvUHR2dnJyBQJ0rEihojBB0dFTnetQ3FSgYURf5/z8A Try it online!]<syntaxhighlight lang=apl>
       X←4 2⍴'AABBCCCC'
       X←4 2⍴'AABBCCCC'
       Y←3 2⍴'AABBAA'
       Y←3 2⍴'AABBAA'
Line 23: Line 23:
CC
CC
CC
CC
</source>{{Works in|[[Extended Dyalog APL]]}}
</syntaxhighlight>{{Works in|[[Extended Dyalog APL]]}}
Others can easily define such a function:
Others can easily define such a function:
[https://tio.run/##SyzI0U2pTMzJT///P@JR2wQTBaNHvVvUHR2dnJyBQJ0rEihojBB0dFTnCs8sycgvLQFKVD/q3fWoZ/@j3hV1Go96Nz/qXAQU0HzU0QUSB/J7t9ZyPeqbClQZoQDVpRD5/z8A Try it online!]<source lang=apl>
[https://tio.run/##SyzI0U2pTMzJT///P@JR2wQTBaNHvVvUHR2dnJyBQJ0rEihojBB0dFTnCs8sycgvLQFKVD/q3fWoZ/@j3hV1Go96Nz/qXAQU0HzU0QUSB/J7t9ZyPeqbClQZoQDVpRD5/z8A Try it online!]<syntaxhighlight lang=apl>
       X←4 2⍴'AABBCCCC'
       X←4 2⍴'AABBCCCC'
       Y←3 2⍴'AABBAA'
       Y←3 2⍴'AABBAA'
Line 32: Line 32:
CC
CC
CC
CC
</source>{{Works in|[[Dyalog APL]]}}
</syntaxhighlight>{{Works in|[[Dyalog APL]]}}
== External Links ==
== External Links ==


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


* [http://help.dyalog.com/latest/#Language/Primitive%20Functions/Excluding.htm#Excluding Dyalog]
* [https://help.dyalog.com/latest/#Language/Primitive%20Functions/Excluding.htm#Excluding Dyalog]
* [http://microapl.com/apl_help/ch_020_020_410.htm APLX]
* [http://microapl.com/apl_help/ch_020_020_410.htm APLX]
* J [https://www.jsoftware.com/help/dictionary/d121.htm Dictionary], [https://code.jsoftware.com/wiki/Vocabulary/minusdot#dyadic NuVoc]
* J [https://www.jsoftware.com/help/dictionary/d121.htm Dictionary], [https://code.jsoftware.com/wiki/Vocabulary/minusdot#dyadic NuVoc]


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

Navigation menu