filter
for filters
Filter values based on a predicate closure.
Signature
> filter {flags} (closure)
Parameters
closure
: Predicate closure.
Input/output types:
input | output |
---|---|
list<any> | list<any> |
range | list<any> |
Examples
Filter items of a list according to a condition
> [1 2] | filter {|x| $x > 1}
╭───┬───╮
│ 0 │ 2 │
╰───┴───╯
Filter rows of a table according to a condition
> [{a: 1} {a: 2}] | filter {|x| $x.a > 1}
╭───┬───╮
│ # │ a │
├───┼───┤
│ 0 │ 2 │
╰───┴───╯
Filter rows of a table according to a stored condition
> let cond = {|x| $x.a > 1}; [{a: 1} {a: 2}] | filter $cond
╭───┬───╮
│ # │ a │
├───┼───┤
│ 0 │ 2 │
╰───┴───╯
Filter items of a range according to a condition
> 9..13 | filter {|el| $el mod 2 != 0}
╭───┬────╮
│ 0 │ 9 │
│ 1 │ 11 │
│ 2 │ 13 │
╰───┴────╯
List all numbers above 3, using an existing closure condition
> let a = {$in > 3}; [1, 2, 5, 6] | filter $a
Notes
This command works similar to 'where' but allows reading the predicate closure from a variable. On the other hand, the "row condition" syntax is not supported.