Bind: Difference between revisions

From APL Wiki
Jump to navigation Jump to search
 
(6 intermediate revisions by 3 users not shown)
Line 1: Line 1:
{{Built-in|Bind|∘}} is a [[primitive operator]]. It shares the glyph [[Jot]] (<source lang=apl inline>∘</source>) with [[Beside]]; in many dialects the two operators share the name [[Compose]]. Its [[derived function]]s can only be called monadically.
{{Built-in|Bind|∘}} is a [[primitive operator]]. It shares the glyph [[Jot]] (<syntaxhighlight lang=apl inline>∘</syntaxhighlight>) with [[Beside]]; in many dialects the two operators share the name [[Compose]]. <syntaxhighlight lang=apl inline>∘</syntaxhighlight> means Bind if any [[operand]] is an [[array]]. Its [[derived function]]s can only be called monadically.


Called with an array left operand <source lang=apl inline>A</source> and function right operand <source lang=apl inline>g</source>, <source lang=apl inline>(A∘f) X</source> is equivalent to <source lang=apl inline>A f X</source>.
Called with an array left operand <syntaxhighlight lang=apl inline>A</syntaxhighlight> and function right operand <syntaxhighlight lang=apl inline>g</syntaxhighlight>, <syntaxhighlight lang=apl inline>(A∘g) X</syntaxhighlight> is equivalent to <syntaxhighlight lang=apl inline>A g X</syntaxhighlight>.


Called with a function left operand <source lang=apl inline>f</source> and array right operand <source lang=apl inline>B</source>, <source lang=apl inline>(f∘B) X</source> is equivalent to <source lang=apl inline>X f B</source>.
Called with a function left operand <syntaxhighlight lang=apl inline>f</syntaxhighlight> and array right operand <syntaxhighlight lang=apl inline>B</syntaxhighlight>, <syntaxhighlight lang=apl inline>(f∘B) X</syntaxhighlight> is equivalent to <syntaxhighlight lang=apl inline>X f B</syntaxhighlight>.


== Common usage ==
== Common usage ==
Bind is used to create a derived function with a single constant argument, particularly in [[tacit programming]]:
Bind is used to create a derived function with a single constant argument, particularly in [[tacit programming]]:
[https://tio.run/##SyzI0U2pTMzJT///3zMv@VHbBO1HHTMMuR71TQWygSIKhgpGCsb//wMA Try it online!]<source lang=apl>
[https://tio.run/##SyzI0U2pTMzJT///3zMv@VHbBO1HHTMMuR71TQWygSIKhgpGCsb//wMA Try it online!]<syntaxhighlight lang=apl>
       Inc←+∘1
       Inc←+∘1
       Inc 1 2 3
       Inc 1 2 3
2 3 4
2 3 4
</source>
</syntaxhighlight>


== External links ==
== External links ==
Line 19: Line 19:


=== Documentation ===
=== Documentation ===
* [http://help.dyalog.com/18.0/#Language/Primitive%20Operators/Bind.htm Dyalog]
* [https://help.dyalog.com/latest/#Language/Primitive%20Operators/Bind.htm Dyalog]
* [https://mlochbaum.github.io/BQN/doc/hook.html BQN] (uses [[hook]])




{{APL built-ins}}[[Category:Primitive operators]][[Category:Composition operators]]
{{APL built-ins}}[[Category:Primitive operators]][[Category:Composition operators]]

Latest revision as of 10:57, 6 October 2022

Bind () is a primitive operator. It shares the glyph Jot () with Beside; in many dialects the two operators share the name Compose. means Bind if any operand is an array. Its derived functions can only be called monadically.

Called with an array left operand A and function right operand g, (A∘g) X is equivalent to A g X.

Called with a function left operand f and array right operand B, (f∘B) X is equivalent to X f B.

Common usage

Bind is used to create a derived function with a single constant argument, particularly in tacit programming:

Try it online!

      Inc←+∘1
      Inc 1 2 3
2 3 4

External links

Lessons

Documentation


APL built-ins [edit]
Primitives (Timeline) Functions
Scalar
Monadic ConjugateNegateSignumReciprocalMagnitudeExponentialNatural LogarithmFloorCeilingFactorialNotPi TimesRollTypeImaginarySquare Root
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 axis
Dyadic BindCompositions (Compose, Reverse Compose, Beside, Withe, Atop, Over) ∙ Inner ProductDeterminantPowerAtUnderRankDepthVariantStencilCutDirect definition (operator)
Quad names Index originComparison toleranceMigration levelAtomic vector