Pick: Difference between revisions

From APL Wiki
Jump to navigation Jump to search
m (Text replacement - "http://help.dyalog.com" to "https://help.dyalog.com")
m (Text replacement - "<source" to "<syntaxhighlight")
Line 3: Line 3:
== Examples ==
== Examples ==


The left [[argument]] X must be a [[vector]] where each element of X specifies the multi-dimensional [[index]] at each layer of the right argument Y. The result of <source lang=apl inline>X⊃Y</source> is the item of Y at the location specified by X.
The left [[argument]] X must be a [[vector]] where each element of X specifies the multi-dimensional [[index]] at each layer of the right argument Y. The result of <syntaxhighlight lang=apl inline>X⊃Y</source> is the item of Y at the location specified by X.


<source lang=apl>
<syntaxhighlight lang=apl>
       ⎕←G←2 3⍴('ABC' 1)('DEF' 2)('GHI' 3)('JKL' 4)('MNO' 5)('PQR' 6)
       ⎕←G←2 3⍴('ABC' 1)('DEF' 2)('GHI' 3)('JKL' 4)('MNO' 5)('PQR' 6)
┌───────┬───────┬───────┐
┌───────┬───────┬───────┐

Revision as of 21:46, 10 September 2022

Pick () is a dyadic primitive function which performs deep indexing on a possibly nested array. Pick allows to extract a value through multiple layers of nesting in a single function application. Pick uses the Right Shoe glyph.

Examples

The left argument X must be a vector where each element of X specifies the multi-dimensional index at each layer of the right argument Y. The result of <syntaxhighlight lang=apl inline>X⊃Y</source> is the item of Y at the location specified by X.

<syntaxhighlight lang=apl>

     ⎕←G←2 3⍴('ABC' 1)('DEF' 2)('GHI' 3)('JKL' 4)('MNO' 5)('PQR' 6)

┌───────┬───────┬───────┐ │┌───┬─┐│┌───┬─┐│┌───┬─┐│ ││ABC│1│││DEF│2│││GHI│3││ │└───┴─┘│└───┴─┘│└───┴─┘│ ├───────┼───────┼───────┤ │┌───┬─┐│┌───┬─┐│┌───┬─┐│ ││JKL│4│││MNO│5│││PQR│6││ │└───┴─┘│└───┴─┘│└───┴─┘│ └───────┴───────┴───────┘

     (⊂2 1)⊃G

┌───┬─┐ │JKL│4│ └───┴─┘

     ((2 1)1)⊃G

JKL

     ((2 1)1 2)⊃G

K </source>

See also

External links

Documentation


APL built-ins [edit]
Primitives (Timeline) Functions
Scalar
Monadic ConjugateNegateSignumReciprocalMagnitudeExponentialNatural LogarithmFloorCeilingFactorialNotPi TimesRollTypeImaginarySquare RootRound
Dyadic AddSubtractTimesDivideResiduePowerLogarithmMinimumMaximumBinomialComparison functionsBoolean functions (And, Or, Nand, Nor) ∙ GCDLCMCircularComplexRoot
Non-Scalar
Structural ShapeReshapeTallyDepthRavelEnlistTableCatenateReverseRotateTransposeRazeMixSplitEncloseNestCut (K)PairLinkPartitioned EnclosePartition
Selection FirstPickTakeDropUniqueIdentityStopSelectReplicateExpandSet functions (IntersectionUnionWithout) ∙ Bracket indexingIndexCartesian ProductSort
Selector Index generatorGradeIndex OfInterval IndexIndicesDealPrefix and suffix vectors
Computational MatchNot MatchMembershipFindNub SieveEncodeDecodeMatrix InverseMatrix DivideFormatExecuteMaterialiseRange
Operators Monadic EachCommuteConstantReplicateExpandReduceWindowed ReduceScanOuter ProductKeyI-BeamSpawnFunction axisIdentity (Null, Ident)
Dyadic BindCompositions (Compose, Reverse Compose, Beside, Withe, Atop, Over) ∙ Inner ProductDeterminantPowerAtUnderRankDepthVariantStencilCutDirect definition (operator)Identity (Lev, Dex)
Quad names Index originComparison toleranceMigration levelAtomic vector