Enclose: Difference between revisions

Jump to navigation Jump to search
45 bytes added ,  22:11, 10 September 2022
m
Text replacement - "<source" to "<syntaxhighlight"
m (Text replacement - "<source" to "<syntaxhighlight")
Tags: Mobile edit Mobile web edit
Line 3: Line 3:
== Examples ==
== Examples ==


An enclosed array is a [[scalar]], which is subject to [[scalar extension]]. This can be used to simulate [[Outer Product|outer product]] by a [[scalar function]] or one-sided [[Each]] (pair the entire right argument with each element of the left argument, or vice versa). A notable application of this behavior is the "chipmunk idiom" <source lang=apl inline>X⊃¨⊂Y</source>, which simulates <source lang=apl inline>Y[X]</source> for (possibly nested) [[vector]] Y and [[simple]] X.
An enclosed array is a [[scalar]], which is subject to [[scalar extension]]. This can be used to simulate [[Outer Product|outer product]] by a [[scalar function]] or one-sided [[Each]] (pair the entire right argument with each element of the left argument, or vice versa). A notable application of this behavior is the "chipmunk idiom" <syntaxhighlight lang=apl inline>X⊃¨⊂Y</source>, which simulates <syntaxhighlight lang=apl inline>Y[X]</source> for (possibly nested) [[vector]] Y and [[simple]] X.


<source lang=apl>
<syntaxhighlight lang=apl>
       1 2 3+⊂4 5 6  ⍝ Computes (1+4 5 6)(2+4 5 6)(3+4 5 6)
       1 2 3+⊂4 5 6  ⍝ Computes (1+4 5 6)(2+4 5 6)(3+4 5 6)
┌─────┬─────┬─────┐
┌─────┬─────┬─────┐
Line 24: Line 24:
Enclose with function axis can be used to move one or more axes to an extra level of nesting.
Enclose with function axis can be used to move one or more axes to an extra level of nesting.


<source lang=apl>
<syntaxhighlight lang=apl>
       ⎕←M←2 3 4⍴⎕A
       ⎕←M←2 3 4⍴⎕A
ABCD
ABCD
Line 67: Line 67:
* [https://help.dyalog.com/latest/#Language/Primitive%20Functions/Enclose.htm Dyalog], [https://help.dyalog.com/latest/#Language/Primitive%20Functions/Enclose%20with%20Axes.htm with axes]
* [https://help.dyalog.com/latest/#Language/Primitive%20Functions/Enclose.htm Dyalog], [https://help.dyalog.com/latest/#Language/Primitive%20Functions/Enclose%20with%20Axes.htm with axes]
* [http://microapl.com/apl_help/ch_020_020_580.htm APLX]
* [http://microapl.com/apl_help/ch_020_020_580.htm APLX]
* J [https://www.jsoftware.com/help/dictionary/d010.htm Vocabulary], [https://code.jsoftware.com/wiki/Vocabulary/lt NuVoc] (as <source lang=j inline><</source>)
* J [https://www.jsoftware.com/help/dictionary/d010.htm Vocabulary], [https://code.jsoftware.com/wiki/Vocabulary/lt NuVoc] (as <syntaxhighlight lang=j inline><</source>)
* [https://mlochbaum.github.io/BQN/doc/enclose.html BQN] (as <code><</code>)
* [https://mlochbaum.github.io/BQN/doc/enclose.html BQN] (as <code><</code>)


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

Navigation menu