Scalar function: Difference between revisions
Miraheze>Adám Brudzewsky No edit summary |
Miraheze>Adám Brudzewsky |
||
Line 7: | Line 7: | ||
Most APLs use a set of scalar functions that was worked out fairly early in APL's development. These are listed in this section. | Most APLs use a set of scalar functions that was worked out fairly early in APL's development. These are listed in this section. | ||
{| class=wikitable | |||
! Monadic function !! Glyph !! Dyadic function | |||
{| | |||
|- | |- | ||
| <source lang=apl inline> | | [[Conjugate]] || <source lang=apl inline>+</source> || [[Plus]] | ||
|- | |- | ||
| <source lang=apl inline> | | [[Negate]] || <source lang=apl inline>-</source> || [[Minus]] | ||
|- | |- | ||
| <source lang=apl inline> | | [[Signum]] or Direction || <source lang=apl inline>×</source> || [[Times]] | ||
|- | |- | ||
| <source lang=apl inline> | | [[Reciprocal]] || <source lang=apl inline>÷</source> || [[Divide]] | ||
|- | |- | ||
| <source lang=apl inline> | | [[Floor]] || <source lang=apl inline>⌊</source> || [[Minimum]] | ||
|- | |- | ||
| <source lang=apl inline> | | [[Ceiling]] || <source lang=apl inline>⌈</source> || [[Maximum]] | ||
|- | |- | ||
| <source lang=apl inline> | | [[Exponential]] || <source lang=apl inline>*</source> || [[Power function]] | ||
|- | |- | ||
| <source lang=apl inline> | | [[Natural Logarithm]] || <source lang=apl inline>⍟</source> || [[Logarithm]] | ||
|- | |- | ||
| <source lang=apl inline> | | [[Magnitude]] or Absolute value || <source lang=apl inline>|</source> || [[Residue]] | ||
|- | |- | ||
| <source lang=apl inline>○</source> || [[ | | [[Pi Times]] || <source lang=apl inline>○</source> || [[Circle function]] | ||
|- | |- | ||
| <source lang=apl inline> | | [[Factorial]] || <source lang=apl inline>!</source> || [[Binomial]] coefficient or combination function | ||
|- | |- | ||
| [[Roll]] || <source lang=apl inline>?</source> || | |||
| <source lang=apl inline> | |||
|- | |- | ||
| <source lang=apl inline> | | [[Not]] || <source lang=apl inline>~</source> || | ||
|- | |- | ||
| <source lang=apl inline> | | || <source lang=apl inline>∧</source> || [[Logical And]] | ||
|- | |- | ||
| <source lang=apl inline> | | || <source lang=apl inline>∨</source> || [[Logical Or]] | ||
|- | |- | ||
| <source lang=apl inline> | | || <source lang=apl inline>⍲</source> || [[Nand]] | ||
|- | |- | ||
| <source lang=apl inline> | | || <source lang=apl inline>⍱</source> || [[Nor]] | ||
|- | |- | ||
| <source lang=apl inline> | | || <source lang=apl inline><</source> || [[Less than]] | ||
|- | |- | ||
| <source lang=apl inline> | | || <source lang=apl inline>≤</source> || [[Less than or equal to]] | ||
|- | |- | ||
| <source lang=apl inline> | | || <source lang=apl inline>=</source> || [[Equal to]] | ||
|- | |- | ||
| <source lang=apl inline> | | || <source lang=apl inline>≥</source> || [[Greater than or equal to]] | ||
|- | |- | ||
| <source lang=apl inline> | | || <source lang=apl inline>></source> || [[Greather than]] | ||
|- | |- | ||
| | | || <source lang=apl inline>≠</source> || [[Not equal to]] | ||
|} | |||
| <source lang=apl inline> | |||
| | == Additional scalar functions == | ||
Very few additional scalar functions have been added later: | |||
{| class=wikitable | |||
! Monadic function !! Glyph !! Dyadic function | |||
| | |||
|- | |- | ||
| <source lang=apl inline> | | [[Square root]] || <source lang=apl inline>√</source> || [[Nth root]] | ||
|- | |- | ||
| <source lang=apl inline> | | [[Type]] || <source lang=apl inline>∊</source> || | ||
|- | |- | ||
|} | |} | ||
{{APL programming language}} | {{APL programming language}} |
Revision as of 11:27, 31 October 2019
A scalar function is one of a class of primitive functions that apply to arguments one element at a time. Dyadic scalar functions pair elements of their arguments based on conformability rules, and thus are subject to scalar extension. In nested array languages scalar functions recursively descend into nested arrays until they can be applied to simple scalars; in flat array languages they usually do not apply inside boxes.
Only a particular valence of a function is labelled "scalar". The scalar monad Not usually shares the glyph ~
with non-scalar dyad Without, and similarly scalar Roll and non-scalar Deal are both written ?
.
Standard scalar functions
Most APLs use a set of scalar functions that was worked out fairly early in APL's development. These are listed in this section.
Monadic function | Glyph | Dyadic function |
---|---|---|
Conjugate | + |
Plus |
Negate | - |
Minus |
Signum or Direction | × |
Times |
Reciprocal | ÷ |
Divide |
Floor | ⌊ |
Minimum |
Ceiling | ⌈ |
Maximum |
Exponential | * |
Power function |
Natural Logarithm | ⍟ |
Logarithm |
Magnitude or Absolute value | | |
Residue |
Pi Times | ○ |
Circle function |
Factorial | ! |
Binomial coefficient or combination function |
Roll | ? |
|
Not | ~ |
|
∧ |
Logical And | |
∨ |
Logical Or | |
⍲ |
Nand | |
⍱ |
Nor | |
< |
Less than | |
≤ |
Less than or equal to | |
= |
Equal to | |
≥ |
Greater than or equal to | |
> |
Greather than | |
≠ |
Not equal to |
Additional scalar functions
Very few additional scalar functions have been added later:
Monadic function | Glyph | Dyadic function |
---|---|---|
Square root | √ |
Nth root |
Type | ∊ |