Beside: Difference between revisions
Jump to navigation
Jump to search
(f∘g⍨ is Withe) |
|||
(8 intermediate revisions by 2 users not shown) | |||
Line 1: | Line 1: | ||
{{Built-in|Beside|∘}}, '''Compose''' or '''After''' is a [[primitive operator]]. It shares the glyph < | {{Built-in|Beside|∘}}, '''Compose''' or '''After''' is a [[primitive operator]]. It shares the glyph [[Jot]] (<syntaxhighlight lang=apl inline>∘</syntaxhighlight>) with [[Bind]]. Called [[Dyadic function|dyadically]] with function [[operand]]s <syntaxhighlight lang=apl inline>f</syntaxhighlight> and <syntaxhighlight lang=apl inline>g</syntaxhighlight>, it uses <syntaxhighlight lang=apl inline>g</syntaxhighlight> [[Monadic function|monadically]] to pre-processes the right argument before applying <syntaxhighlight lang=apl inline>f</syntaxhighlight> to the given left argument and pre-processed right argument. Called [[Monadic function|monadically]] with operands <syntaxhighlight lang=apl inline>f</syntaxhighlight> and <syntaxhighlight lang=apl inline>g</syntaxhighlight>, it applies <syntaxhighlight lang=apl inline>f</syntaxhighlight> to the result of applying <syntaxhighlight lang=apl inline>g</syntaxhighlight> to the argument. | ||
In usage, < | In usage, <syntaxhighlight lang=apl inline>X f∘g Y</syntaxhighlight> is equivalent to <syntaxhighlight lang=apl inline>X f g Y</syntaxhighlight>, and <syntaxhighlight lang=apl inline>f∘g Y</syntaxhighlight> is equivalent to <syntaxhighlight lang=apl inline>f g Y</syntaxhighlight>. Thus, beside can be defined as the [[dop]] <syntaxhighlight lang=apl inline>{⍺←⊢ ⋄ ⍺ ⍺⍺ ⍵⍵ ⍵}</syntaxhighlight>. | ||
== Examples == | == Examples == | ||
When | When used [[monadic]]ally, <syntaxhighlight lang=apl inline>f∘g</syntaxhighlight> behaves the same as an [[atop]]: | ||
< | <syntaxhighlight lang=apl> | ||
-∘÷ 2 | -∘÷ 2 | ||
¯0.5 | ¯0.5 | ||
Line 12: | Line 12: | ||
-(÷2) | -(÷2) | ||
¯0.5 | ¯0.5 | ||
</ | </syntaxhighlight> | ||
When | When used [[dyadic]]ally, <syntaxhighlight lang=apl inline>f∘g</syntaxhighlight> forms a dyadic [[hook]]: | ||
< | <syntaxhighlight lang=apl> | ||
'oy'≡∘⌽'yo' | 'oy'≡∘⌽'yo' | ||
1 | 1 | ||
Line 22: | Line 22: | ||
'oy'≡⌽'yo' | 'oy'≡⌽'yo' | ||
1 | 1 | ||
</ | </syntaxhighlight> | ||
When used with [[Commute]], < | When used monadically with [[Commute]], <syntaxhighlight lang=apl inline>f∘g</syntaxhighlight> forms a monadic [[hook]]: | ||
< | <syntaxhighlight lang=apl> | ||
≡∘⌽⍨'UwU' | ≡∘⌽⍨'UwU' | ||
1 | 1 | ||
⍝ same as this, because | ⍝ same as this, because operators are left-associative, unlike functions which are right-associative | ||
(≡∘⌽)⍨'UwU' | |||
1 | 1 | ||
⍝ same as | ⍝ same as | ||
'UwU'≡⌽'UwU' | 'UwU'≡⌽'UwU' | ||
1 | 1 | ||
</ | </syntaxhighlight> | ||
This is equivalent to the dyadic behaviour of [[Withe]] <syntaxhighlight lang=apl inline>f⍩g</syntaxhighlight>. | |||
== External links == | == External links == | ||
Line 44: | Line 45: | ||
=== Documentation === | === Documentation === | ||
* [https://help.dyalog.com/ | * [https://help.dyalog.com/latest/#Language/Primitive%20Operators/Beside.htm Dyalog] | ||
{{APL built-ins}}[[Category:Primitive operators]][[Category:Composition operators]] | {{APL built-ins}}[[Category:Primitive operators]][[Category:Composition operators]] |
Latest revision as of 06:20, 28 February 2024
∘
|
Beside (∘
), Compose or After is a primitive operator. It shares the glyph Jot (∘
) 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' 1 ⍝ same as 'UwU'≡⌽'UwU' 1
This is equivalent to the dyadic behaviour of Withe f⍩g
.
External links
Lessons
Documentation