# Scalar function

(Redirected from Scalar functions)
Jump to navigation Jump to search

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 pervade any nested arrays by recursively descending into them until reaching simple scalars; in flat array languages they usually do not apply inside boxes. Functions which are not scalar, are called mixed functions.

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
`>` Greater than
`≠` Not equal to

## Additional scalar functions

Very few additional scalar functions have been added later in various dialects:

Monadic function Glyph Dyadic function
Square Root `√` Nth Root
Type `∊` or `⊤`
`∧` Lowest Common Multiple (LCM)
`∨` Greatest Common Divisor (GCD)
Case fold `⎕C` Case map