Atop (operator)

From APL Wiki
Revision as of 17:24, 25 April 2022 by Marshall (talk | contribs) (Close composition (SHARP/J) section)
Jump to navigation Jump to search

Atop () is a primitive dyadic operator which takes two function operands and produces a derived function which uses the left operand monadically to post-processes the result of the ambivalent right operand.

Explanation

When the resulting function is used monadically, it has the same behaviour as if the Atop 2-train or any of the Beside or Over operators had been used:

  (g ⍤ h) ⍵
g (h ⍵)

When the resulting function is used dyadically, the result is post-processed:

⍺ (g ⍤ h) ⍵
g ⍺ h ⍵)

Examples

      x←3 1 2
      y←4 6 5
      x -⍤⌈ y ⍝ the negation of the max of x y
¯4 ¯6 ¯5
      ⍝ same as
      -x⌈y
¯4 ¯6 ¯5

Close composition

In SHARP APL and J, Atop is implemented as a close composition, meaning that (using SHARP syntax) f⍥g has the overall function rank of g. J uses @ for the close form and @: for the rankless form that appears in modern APLs.

External links

Lessons

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