Scalar Functions
There is a class of primitive functions termed scalar functions This class is identified in below. Scalar functions are pervasive, that is, their properties apply at all levels of nesting. Scalar functions have the following properties:
Symbol | Monadic | Dyadic |
---|---|---|
+ | Conjugate | Plus (Add) |
- | Negative | Minus (Subtract) |
× | Direction (Signum) | Times (Multiply) |
÷ | Reciprocal l | Divide |
| | Magnitude | Residue |
⌊ | Floor | Minimum |
⌈ | Ceiling | Maximum |
* | Exponential | Power |
⍟ | Natural Logarithm | Logarithm |
○ | Pi Times | Circular |
! | Factorial | Binomial |
~ | Not | $ |
? | Roll | $ |
∊ | Type (See Enlist ) | $ |
^ | And | |
∨ | Or | |
⍲ | Nand | |
⍱ | Nor | |
< | Less | |
≤ | Less Or Equal | |
= | Equal | |
≥ | Greater Or Equal | |
> | Greater | |
≠ | Not Equal | |
$ Dyadic form is not scalar |
Monadic Scalar Functions
- The function is applied independently to each simple scalar in its argument.
- The function produces a result with a structure identical to its argument.
- When applied to an empty argument, the function produces an empty result. With the exception of
+
and∊
, the type of this result depends on the function, not on the type of the argument. By definition + and∊
return a result of the same type as their arguments.
Example
÷2 (1 4)
0.5 1 0.25
Dyadic Scalar Functions
- The function is applied independently to corresponding pairs of simple scalars in its arguments.
- A simple scalar will be replicated to conform to the structure of the other argument. If a simple scalar in the structure of an argument corresponds to a non-simple scalar in the other argument, then the function is applied between the simple scalar and the items of the non-simple scalar. Replication of simple scalars is called scalar extension.
- A simple unit is treated as a scalar for scalar extension purposes. A unit is a single element array of any rank. If both arguments are simple units, the argument with lower rank is extended.
- The function produces a result with a structure identical to that of its arguments (after scalar extensions).
- If applied between empty arguments, the function produces a composite structure resulting from any scalar extensions, with type appropriate to the particular function. (All scalar dyadic functions return a result of numeric type.)
Examples
2 3 4 + 1 2 3
3 5 7
2 (3 4) + 1 (2 3)
3 5 7
(1 2) 3 + 4 (5 6)
5 6 8 9
10 × 2 (3 4)
20 30 40
2 4 = 2 (4 6)
1 1 0
(1 1⍴5) - 1 (2 3)
4 3 2
1↑''+⍳0
0
1↑(0⍴⊂' ' (0 0))×''
0 0 0
Note
The Axis operator applies to all scalar dyadic functions.