4,494
edits
Miraheze>Marshall |
|||
(22 intermediate revisions by 5 users not shown) | |||
Line 1: | Line 1: | ||
A scalar function is one of a class of primitive | A '''scalar function''' is one of a class of [[primitive function]]s that apply to [[argument]]s 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 model|nested]] array languages, scalar functions [[pervasion|pervade]] any [[nested array]]s by [[recursion|recursively]] descending into them until reaching [[simple scalars]]; in [[Flat array model|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 < | Only a particular [[valence]] of a function is labelled "scalar". The scalar monad [[Not]] usually shares the glyph <source lang=apl inline>~</source> with non-scalar dyad [[Without]], and similarly scalar [[Roll]] and non-scalar [[Deal]] are both written <source lang=apl inline>?</source>. | ||
== Standard scalar functions == | == Standard scalar functions == | ||
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 | |||
{| | |||
|- | |- | ||
| < | | [[Conjugate]] || <source lang=apl inline>+</source> || [[Plus]] | ||
|- | |- | ||
| < | | [[Negate]] || <source lang=apl inline>-</source> || [[Minus]] | ||
|- | |- | ||
| < | | [[Signum]] or Direction || <source lang=apl inline>×</source> || [[Times]] | ||
|- | |- | ||
| < | | [[Reciprocal]] || <source lang=apl inline>÷</source> || [[Divide]] | ||
|- | |- | ||
| < | | [[Floor]] || <source lang=apl inline>⌊</source> || [[Minimum]] | ||
|- | |- | ||
| < | | [[Ceiling]] || <source lang=apl inline>⌈</source> || [[Maximum]] | ||
|- | |- | ||
| < | | [[Exponential]] || <source lang=apl inline>*</source> || [[Power function]] | ||
|- | |- | ||
| | | [[Natural Logarithm]] || <source lang=apl inline>⍟</source> || [[Logarithm]] | ||
|- | |- | ||
| < | | [[Magnitude]] or Absolute value || <source lang=apl inline>|</source> || [[Residue]] | ||
|- | |- | ||
| < | | [[Pi Times]] || <source lang=apl inline>○</source> || [[Circle function]] | ||
|- | |- | ||
| < | | [[Factorial]] || <source lang=apl inline>!</source> || [[Binomial]] coefficient or combination function | ||
|- | |- | ||
| [[Roll]] || <source lang=apl inline>?</source> || | |||
| | |||
| < | |||
|- | |- | ||
| < | | [[Not]] || <source lang=apl inline>~</source> || | ||
|- | |- | ||
| < | | || <source lang=apl inline>∧</source> || [[Logical And]] | ||
|- | |- | ||
| < | | || <source lang=apl inline>∨</source> || [[Logical Or]] | ||
|- | |- | ||
| < | | || <source lang=apl inline>⍲</source> || [[Nand]] | ||
|- | |- | ||
| < | | || <source lang=apl inline>⍱</source> || [[Nor]] | ||
|- | |- | ||
| < | | || <source lang=apl inline><</source> || [[Less than]] | ||
|- | |- | ||
| < | | || <source lang=apl inline>≤</source> || [[Less than or equal to]] | ||
|- | |- | ||
| | | || <source lang=apl inline>=</source> || [[Equal to]] | ||
|- | |- | ||
| < | | || <source lang=apl inline>≥</source> || [[Greater than or equal to]] | ||
|- | |- | ||
| < | | || <source lang=apl inline>></source> || [[Greater than]] | ||
|- | |- | ||
| < | | || <source lang=apl inline>≠</source> || [[Not equal to]] | ||
|} | |||
== Additional scalar functions == | |||
Very few additional scalar functions have been added later in various dialects: | |||
{| class=wikitable | |||
! Monadic function !! Glyph !! Dyadic function | |||
|- | |- | ||
| < | | [[Square Root]] || <source lang=apl inline>√</source> || [[Nth Root]] | ||
|- | |- | ||
| < | | [[Type]] || <source lang=apl inline>∊</source> or <source lang=apl inline>⊤</source> || | ||
|- | |- | ||
| < | | || <source lang=apl inline>∧</source> || [[Lowest Common Multiple]] (LCM) | ||
|- | |- | ||
| < | | || <source lang=apl inline>∨</source> || [[Greatest Common Divisor]] (GCD) | ||
|- | |- | ||
| [[Case fold]] || <source lang=apl inline>⎕C</source> || [[Case map]] | |||
| | |||
| < | |||
|- | |- | ||
|} | |} | ||
== External links == | |||
* [https://www.sacrideo.us/apl-a-day-7-scalar-functions/ Scalar Functions] (part of [https://www.sacrideo.us/tag/apl-a-day/ APL a Day]) | |||
* [https://forums.dyalog.com/viewtopic.php?f=30&t=1621 Scalar functions] by [[Roger Hui]] | |||
{{APL features}}[[Category:Kinds of functions]][[Category:Scalar functions| ]] |