4,577
edits
m (Text replacement - "</source>" to "</syntaxhighlight>") |
m (Text replacement - "<source" to "<syntaxhighlight") |
||
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]] < | {{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" < | 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]]. | ||
< | <syntaxhighlight lang=apl> | ||
'HELLO'~'GOODBYE' | 'HELLO'~'GOODBYE' | ||
HLL | HLL | ||
Line 17: | Line 17: | ||
== 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!]< | [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 25: | Line 25: | ||
</syntaxhighlight>{{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!]< | [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' |