[−][src]Crate iter_comprehensions
Compact iterator comprehensions.
The macro iter!
can be used to generate a sequence of elements using
generating sequences and conditional filters. There are two general forms
iter!(EXPR; VAR in RANGE, COND, ...)
iter!(VAR in RANGE, COND, ..., EXPR)
where EXPR
the generator expression, VAR
is a variable RANGE
a some
sequence, e.g. 0..n
. COND
is an arbitrary boolean expression. Each
RANGE
and COND
term can use the variables declared in preceeding range
expressions.
Example
The expression $\{ 5i + j : i \in \{0..4\}, j \in \{0..4\}, i < j \}$ is equivalent to the following form
use iter_comprehensions::iter; assert_eq!(iter!(4*i + j; i in 0..5, j in 0..5, i < j).collect::<Vec<_>>(), vec![1, 2, 3, 4, 6, 7, 8, 11, 12, 16]);
Macros
iter | An iterator comprehension. |
product | A product expression. |
sum | A sum expression. |
vector | A iterator comprehensions generating a vector. |
Functions
productiter | |
sumiter |