Beside: Difference between revisions

From APL Wiki
Jump to navigation Jump to search
Line 4: Line 4:


== Examples ==
== Examples ==
When use [[monadic]]ally, <source lang=apl inline>f∘g</source> behaves the same as an [[atop]].
When used [[monadic]]ally, <source lang=apl inline>f∘g</source> behaves the same as an [[atop]]:


<source lang=apl>
<source lang=apl>
Line 14: Line 14:
</source>
</source>


When use [[dyadic]]ally,  
When used [[dyadic]]ally, <source lang=apl inline>f∘g</source> forms a dyadic [[hook]]:


<source lang=apl>
<source lang=apl>
Line 24: Line 24:
</source>
</source>


When used with [[Commute]], <source lang=apl inline>f∘g</source> forms a [[Hook]].
When used monadically with [[Commute]], <source lang=apl inline>f∘g</source> forms a monadic [[hook]]:
<source lang=apl>
<source lang=apl>
       ≡∘⌽⍨'UwU'
       ≡∘⌽⍨'UwU'
1
1
       ⍝ same as this, because operator is left-associative, unlike functions which is right-associative
       ⍝ same as this, because operators are left-associative, unlike functions which are right-associative
       'UwU'(≡∘⌽)⍨'UwU'
       'UwU'(≡∘⌽)⍨'UwU'
1
1

Revision as of 09:08, 6 September 2021

Beside (), Compose or After is a primitive operator. It shares the glyph with Bind. Called dyadically with function operands f and g, it uses g monadically to pre-processes the right argument before applying f to the given left argument and pre-processed right argument. Called monadically with operands f and g, it applies f to the result of applying g to the argument.

In usage, X f∘g Y is equivalent to X f g Y, and f∘g Y is equivalent to f g Y. Thus, beside can be defined as the dop {⍺←⊢ ⋄ ⍺ ⍺⍺ ⍵⍵ ⍵}.

Examples

When used monadically, f∘g behaves the same as an atop:

      -∘÷ 2 
¯0.5
      ⍝ same as
      -(÷2)
¯0.5

When used dyadically, f∘g forms a dyadic hook:

      'oy'≡∘⌽'yo'
1
      ⍝ same as
      'oy'≡⌽'yo'
1

When used monadically with Commute, f∘g forms a monadic hook:

      ≡∘⌽⍨'UwU'
1
      ⍝ same as this, because operators are left-associative, unlike functions which are right-associative
      'UwU'(≡∘⌽)⍨'UwU'
1
      ⍝ same as
      'UwU'≡⌽'UwU'
1

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