Beside: Difference between revisions
mNo edit summary |
m (Text replacement - "</source>" to "</syntaxhighlight>") |
||
Line 1: | Line 1: | ||
{{Built-in|Beside|∘}}, '''Compose''' or '''After''' is a [[primitive operator]]. It shares the glyph [[Jot]] (<source lang=apl inline>∘</ | {{Built-in|Beside|∘}}, '''Compose''' or '''After''' is a [[primitive operator]]. It shares the glyph [[Jot]] (<source lang=apl inline>∘</syntaxhighlight>) with [[Bind]]. Called [[Dyadic function|dyadically]] with function [[operand]]s <source lang=apl inline>f</syntaxhighlight> and <source lang=apl inline>g</syntaxhighlight>, it uses <source lang=apl inline>g</syntaxhighlight> [[Monadic function|monadically]] to pre-processes the right argument before applying <source lang=apl inline>f</syntaxhighlight> to the given left argument and pre-processed right argument. Called [[Monadic function|monadically]] with operands <source lang=apl inline>f</syntaxhighlight> and <source lang=apl inline>g</syntaxhighlight>, it applies <source lang=apl inline>f</syntaxhighlight> to the result of applying <source lang=apl inline>g</syntaxhighlight> to the argument. | ||
In usage, <source lang=apl inline>X f∘g Y</ | In usage, <source lang=apl inline>X f∘g Y</syntaxhighlight> is equivalent to <source lang=apl inline>X f g Y</syntaxhighlight>, and <source lang=apl inline>f∘g Y</syntaxhighlight> is equivalent to <source lang=apl inline>f g Y</syntaxhighlight>. Thus, beside can be defined as the [[dop]] <source lang=apl inline>{⍺←⊢ ⋄ ⍺ ⍺⍺ ⍵⍵ ⍵}</syntaxhighlight>. | ||
== Examples == | == Examples == | ||
When used [[monadic]]ally, <source lang=apl inline>f∘g</ | When used [[monadic]]ally, <source lang=apl inline>f∘g</syntaxhighlight> behaves the same as an [[atop]]: | ||
<source lang=apl> | <source lang=apl> | ||
Line 12: | Line 12: | ||
-(÷2) | -(÷2) | ||
¯0.5 | ¯0.5 | ||
</ | </syntaxhighlight> | ||
When used [[dyadic]]ally, <source lang=apl inline>f∘g</ | When used [[dyadic]]ally, <source lang=apl inline>f∘g</syntaxhighlight> forms a dyadic [[hook]]: | ||
<source lang=apl> | <source lang=apl> | ||
Line 22: | Line 22: | ||
'oy'≡⌽'yo' | 'oy'≡⌽'yo' | ||
1 | 1 | ||
</ | </syntaxhighlight> | ||
When used monadically with [[Commute]], <source lang=apl inline>f∘g</ | When used monadically with [[Commute]], <source lang=apl inline>f∘g</syntaxhighlight> forms a monadic [[hook]]: | ||
<source lang=apl> | <source lang=apl> | ||
≡∘⌽⍨'UwU' | ≡∘⌽⍨'UwU' | ||
Line 34: | Line 34: | ||
'UwU'≡⌽'UwU' | 'UwU'≡⌽'UwU' | ||
1 | 1 | ||
</ | </syntaxhighlight> | ||
== External links == | == External links == |
Revision as of 21:40, 10 September 2022
∘
|
Beside (∘
), Compose or After is a primitive operator. It shares the glyph Jot (<source lang=apl inline>∘</syntaxhighlight>) with Bind. Called dyadically with function operands <source lang=apl inline>f</syntaxhighlight> and <source lang=apl inline>g</syntaxhighlight>, it uses <source lang=apl inline>g</syntaxhighlight> monadically to pre-processes the right argument before applying <source lang=apl inline>f</syntaxhighlight> to the given left argument and pre-processed right argument. Called monadically with operands <source lang=apl inline>f</syntaxhighlight> and <source lang=apl inline>g</syntaxhighlight>, it applies <source lang=apl inline>f</syntaxhighlight> to the result of applying <source lang=apl inline>g</syntaxhighlight> to the argument.
In usage, <source lang=apl inline>X f∘g Y</syntaxhighlight> is equivalent to <source lang=apl inline>X f g Y</syntaxhighlight>, and <source lang=apl inline>f∘g Y</syntaxhighlight> is equivalent to <source lang=apl inline>f g Y</syntaxhighlight>. Thus, beside can be defined as the dop <source lang=apl inline>{⍺←⊢ ⋄ ⍺ ⍺⍺ ⍵⍵ ⍵}</syntaxhighlight>.
Examples
When used monadically, <source lang=apl inline>f∘g</syntaxhighlight> behaves the same as an atop:
<source lang=apl>
-∘÷ 2
¯0.5
⍝ same as -(÷2)
¯0.5 </syntaxhighlight>
When used dyadically, <source lang=apl inline>f∘g</syntaxhighlight> forms a dyadic hook:
<source lang=apl>
'oy'≡∘⌽'yo'
1
⍝ same as 'oy'≡⌽'yo'
1 </syntaxhighlight>
When used monadically with Commute, <source lang=apl inline>f∘g</syntaxhighlight> forms a monadic hook: <source lang=apl>
≡∘⌽⍨'UwU'
1
⍝ same as this, because operators are left-associative, unlike functions which are right-associative (≡∘⌽)⍨'UwU'
1
⍝ same as 'UwU'≡⌽'UwU'
1 </syntaxhighlight>
External links
Lessons
Documentation