Enclose: Difference between revisions

Jump to navigation Jump to search
45 bytes added ,  22:17, 10 September 2022
m
Text replacement - "</source>" to "</syntaxhighlight>"
m (Text replacement - "<source" to "<syntaxhighlight")
Tags: Mobile edit Mobile web edit
m (Text replacement - "</source>" to "</syntaxhighlight>")
 
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" <syntaxhighlight lang=apl inline>X⊃¨⊂Y</source>, which simulates <syntaxhighlight 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</syntaxhighlight>, which simulates <syntaxhighlight lang=apl inline>Y[X]</syntaxhighlight> for (possibly nested) [[vector]] Y and [[simple]] X.


<syntaxhighlight lang=apl>
<syntaxhighlight lang=apl>
Line 20: Line 20:
│3 4│1 2│
│3 4│1 2│
└───┴───┘
└───┴───┘
</source>
</syntaxhighlight>


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.
Line 51: Line 51:
       ⍴⊃⊂[1 3]N  ⍝ Shape of each element is the enclosed axes
       ⍴⊃⊂[1 3]N  ⍝ Shape of each element is the enclosed axes
2 4
2 4
</source>{{Works in|[[Dyalog APL]]}}
</syntaxhighlight>{{Works in|[[Dyalog APL]]}}


== Description ==
== Description ==
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 <syntaxhighlight 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><</syntaxhighlight>)
* [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