﻿ RemoveIf – Algosim documentation
Algosim documentation: RemoveIf

# RemoveIf

Removes, from a container, every element that satisfy a given predicate.

## Syntax

• `RemoveIf(X, p[, n])`

• `X` is any container that is not a set

• `p` is a predicate

• `n` is a positive integer

• `RemoveIf(S, p)`

• `X` is a set

• `p` is a predicate

## Description

If `X` is any container (including a set), then `RemoveIf(X, p)` returns `X` with every element `x` for which `p(x)` is `true` removed. If `X` is not a set, then `RemoveIf(X, p, n)` removes elements that satisfy `p` at level `n`, with level `n = 1` being `X` itself.

## Examples

`v ≔ RandomIntVector(20, −3, 4)`
`(2, −2, 1, −2, 3, 1, −2, 0, −3, 3, 1, 3, 3, 1, −2, 2, 0, 0, 3, 3)`
`RemoveIf(v, odd)`
`(2, −2, −2, −2, 0, −2, 2, 0, 0)`
`compute(RandomIntVector(20, −3, 4), n, 1, 5)`
```(−1, −3, −2, 1, 1, 2, −1, −3, 2, 3, 2, −3, 2, −2, −3, 3, 1, −3, −1, −1)
(2, −1, 3, 3, 0, −2, 0, 1, 0, −2, 2, −3, −1, 3, 1, 0, −3, 1, 3, 1)
(1, 0, 3, −2, −1, 2, 2, 3, 1, 1, 1, −2, −2, −1, −1, −3, 3, −1, 0, 3)
(−1, −1, 0, 3, 2, 1, 3, 0, 2, −1, −2, 1, 2, 3, −2, 2, 0, 2, 0, −1)
(2, −1, 2, 3, 2, 2, −2, 0, 0, 1, −1, −3, 2, −1, 1, 1, 0, 0, 3, −1)
```
`RemoveIf(ans, odd, 2)`
```(−2, 2, 2, 2, 2, −2)
(2, 0, −2, 0, 0, −2, 2, 0)
(0, −2, 2, 2, −2, −2, 0)
(0, 2, 0, 2, −2, 2, −2, 2, 0, 2, 0)
(2, 2, 2, 2, −2, 0, 0, 2, 0, 0)
```