ApplyIf
Conditionally applies a function to every element in a container.
Syntax
-
ApplyIf(X, p, f[, n])-
Xis a container that is not a set -
pis a predicate -
fis a function -
nis a positive integer
-
Description
If X is any container except a set, p a boolean-valued function defined on X, and f a function defined on X, then ApplyIf(X, p, f) returns a copy of X in which every element x for which p(x) is true has been replaced by f(x).
ApplyIf(X, p, f, n) instead tests and transforms element on level n in X, with n = 1 being X itself.
Examples
A ≔ RandomIntMatrix(10, 0, 10)
⎛9 4 9 1 1 9 3 1 7 1⎞ ⎜3 2 8 2 1 4 4 3 9 2⎟ ⎜5 7 5 0 3 0 4 4 0 3⎟ ⎜8 5 1 4 4 7 2 3 9 7⎟ ⎜5 9 0 4 8 5 3 6 3 5⎟ ⎜1 6 3 6 1 2 4 9 3 4⎟ ⎜2 5 6 7 9 1 4 0 4 4⎟ ⎜6 5 6 1 1 7 6 6 3 5⎟ ⎜6 1 1 4 5 7 6 0 1 8⎟ ⎝2 0 4 1 4 3 4 4 4 4⎠
ApplyIf(A, IsNonZero, x ↦ ⌊9/x⌋)
⎛1 2 1 9 9 1 3 9 1 9⎞ ⎜3 4 1 4 9 2 2 3 1 4⎟ ⎜1 1 1 0 3 0 2 2 0 3⎟ ⎜1 1 9 2 2 1 4 3 1 1⎟ ⎜1 1 0 2 1 1 3 1 3 1⎟ ⎜9 1 3 1 9 4 2 1 3 2⎟ ⎜4 1 1 1 1 9 2 0 2 2⎟ ⎜1 1 1 9 9 1 1 1 3 1⎟ ⎜1 9 9 2 1 1 1 0 9 1⎟ ⎝4 0 2 9 2 3 2 2 2 2⎠