Algosim documentation: ApplyIf

ApplyIf

Conditionally applies a function to every element in a container.

Syntax

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⎠

See also