IT |
batching |
{a0,…,ai,…,…}:{T}, |
batch:&mut {T}→U |
{c0batch({a0,…}),c1batch({ai,…}),…}:{U} |
IT |
cartesian_product |
{a0,a1,…,an−1}, |
{b0,b1,…,bm−1} |
{(a0,b0),(a0,b1),…,(a0,bm−1), (a1,b0),(a1,b1),…,(a1,bm−1) …, (an−1,b0),(an−1,b1),…,(an−1,bm−1)} |
Std |
chain |
{a0,…,an−1}, |
{b0,…,bm−1} |
{a0,…,an−1,b0,…,bm−1} |
IT |
chunks |
{a0,…}, |
m |
{{a0,…,am−1},{am,…,a2m−1},…} |
Std |
cmp |
{a0,…,ai}, |
{b0,…,bi,bi+1,…−−−} |
cmp(a0,b0) then … then cmp(ai,bi) then Less |
{a0,…,ai}, |
{b0,…,bi} |
cmp(a0,b0) then … then cmp(ai,bi) then Equal |
{a0,…,ai,ai+1,…−−−}, |
{b0,…,bi} |
cmp(a0,b0) then … then cmp(ai,bi) then Greater |
IT |
coalesce |
{a0,a1,a2,…} |
f:(T,T)→Ok(T) | Err((T,T)) |
oror{x0,…}{a′0,x1,…}{a′0,a′′1,…}wh.wh.wh.{f(a0,a1)=Ok(x0),…⎧⎩⎨⎪⎪f(a0,a1)=Err((a′0,a′1)),f(a′1,a2)=Ok(x1),…⎧⎩⎨⎪⎪f(a0,a1)=Err((a′0,a′1)),f(a′1,a2)=Err(a′′1,a′2),…
|
Std |
collect |
{a0,…} |
[a0,…] |
IT |
collect_vec |
{a0,…} |
[a0,…]:Vec⟨T⟩ |
Std |
cycle |
{a0,…,an−1} |
{a0,…,an−1,a0,…,an−1,…} |
IT |
dedup |
{a0,a0,…,a1,a1,…,…} |
{a0,a1,…} |
IT |
dropping |
{a0,…,ai−1consumed,ai,…} |
i wh. i<n |
{ai,…} (consumes a0…ai−1 immediately) |
{a0,…,an−1consumed} |
i wh. i≥n |
{} (consumes a0…an−1 immediately) |
IT |
dropping_back |
{a0,…,an−i−1,an−i,…,an−1consumed} |
i wh. i<n |
{a0,…,an−i−1} (consumes an−i…an immediately) |
{a0,…,an−1consumed} |
i wh. i≥n |
{} (consumes a0…an immediately) |
Std |
enumerate |
{a0,a1,…} |
{(0,a0),(1,a1),…} |
Std |
eq |
{a0,…,an−1}, |
{b0,…,bm−1} |
false wh. n≠m |
(a0=b0)∧…∧(an−1=bn−1) |
Std |
filter |
{a0,a1,…}, |
p:&T→bool |
{ai for all i wh. p(&ai)} |
Std |
filter_map |
{a0,a1,…}, |
f:T→Some(U) | None |
{xi for all i where f(ai)=Some(xi)} |
Std |
flat_map |
{a0,a1,…}, |
f:T→{U} |
{x0,x1,…x=f(a0),y0,y1,…y=f(a1),…} |
IT |
flatten |
{{a0,…},{b0,…},…}, |
{a0,…,b0,…} |
Std |
ge |
{a0,…,an−1}, |
{b0,…,bm−1} |
false wh. n<m |
(a0≥b0)∧…∧(an−1≥bn−1) |
IT |
group_by |
{a0,…,ai−1g(ax)=g0,ai,…,aj−1g(ay)=g1≠g0,aj,…,ak−1g(az)=g2≠g1,…}, |
g:&T→G |
{(g0,{a0,…,ai−1}), (g1,{ai,…,aj−1}), (g2,{aj,…,ak−1}),…} |
Std |
gt |
{a0,…,an−1}, |
{b0,…,bm−1} |
false wh. n<m |
(a0>b0)∧…∧(an−1>bn−1) |
IT |
interleave |
{a0,a1,…,ai−1,ai,…}, |
{b0,b1,…,bi−1} |
{a0,b0,a1,b1,…,ai−1,bi−1,ai,…} |
{a0,a1,…,ai−1}, |
{b0,b1,…,bi−1} |
{a0,b0,a1,b1,…,ai−1,bi−1} |
{a0,a1,…,ai−1}, |
{b0,b1,…,bi−1,bi,…} |
{a0,b0,a1,b1,…,ai−1,bi−1,bi,…} |
IT |
interleave_shortest |
{a0,a1,…,ai−1,ai,…−−−}, |
{b0,b1,…,bi−1} |
{a0,b0,a1,b1,…,ai−1,bi−1,ai} |
{a0,a1,…,ai−1} |
{b0,b1,…,bi−1,bi,…−−−−−} |
{a0,b0,a1,b1,…,ai−1,bi−1} |
IT |
intersperse |
{a0,a1,…,an−1} |
b |
{a0,b,a1,b,…,b,an−1} |
IT |
kmerge |
{{a0,…},{b0,…},…} wh. sorted(a), sorted(b),… |
{c0,c1,…} wh. c0≤c1≤…, a⊆c,b⊆c,… |
IT |
kmerge_by |
{{a0,…},{b0,…},…} wh. sorted_by(a,∘), sorted_by(b,∘),…, |
∘:(&T,&T)→bool |
{c0,c1,…} wh. c0∘c1∘…, a⊆c,b⊆c,… |
Std |
map |
{a0,a1,…}, |
f:T→U |
{f(a0),f(a1),…} |
IT |
map_fn |
{a0,a1,…}, |
f:fn(T)→U |
{f(a0),f(a1),…} |
IT |
map_results |
{a0,…}:{Ok(T) | Err(E)}, |
f:(T)→U |
{a0.map(f),…}:{Ok(U) | Err(E)} |
IT |
merge |
{a0,a1,…} wh. a0≤a1≤…, |
{b0,b1,…} wh. b0≤b1≤… |
{c0,c1,…} wh. c0≤c1≤…,a⊆c,b⊆c |
IT |
merge_by |
{a0,a1,…} wh. a0∘a1∘…, |
{b0,b1,…} wh. b0∘b1∘…,
∘:(&T,&T)→Ordering |
{c0,c1,…} wh. c0∘c1∘…,a⊆c,b⊆c |
IT |
pad_using |
{a0,…,an−1}, |
m, f:i→T |
{a0,…,an−1} wh. n>=m{a0,…,an−1,f(n),…,f(m−1)} otherwise |
Std |
partial_cmp |
{a0,…,ai}, |
{b0,…,bi,bi+1,…−−−} |
pcmp(a0,b0) then … then pcmp(ai,bi) then Less |
{a0,…,ai}, |
{b0,…,bi} |
pcmp(a0,b0) then … then pcmp(ai,bi) then Equal |
{a0,…,ai,ai+1,…−−−}, |
{b0,…,bi} |
pcmp(a0,b0) then … then pcmp(ai,bi) then Greater |
Std |
partition |
{a0,a1,…}, |
f:&T→bool |
([ai for all i wh. f(&ai)=true], [ai for all i wh. f(&ai)=false]) |
IT |
partition_map |
{a0,a1,…}, |
f:T→Left(L) | Right(R) |
([xi for all i wh. f(ai)=Left(xi)], [xi for all i wh. f(ai)=Right(xi)]) |
Std |
rev |
{a0,a1,…,an−2,an−1} |
{an−1,an−2,…,a1,a0} |
Std |
scan |
{a0,a1,…}, |
s:&mut S, f:(&mut S,T)→Some(U) | None |
{xi for all i wh. f(s,ai)=Some(xi)} |
Std |
skip |
{a0,…,ai−1,ai,…}, |
i |
{ai,…} |
{a0,…,an−1}, |
i wh. i≥n |
{} |
Std |
skip_while |
{a0,…,ai,…}, |
p:&T→bool |
{ai,…} wh. i is first wh. p(&ai) |
IT |
sorted |
{a0,…} |
[c0,…]:Vec⟨T⟩ wh. c0≤c1≤… |
IT |
sorted_by |
{a0,…} |
∘:(&T,&T)→Ordering |
[c0,…]:Vec⟨T⟩ wh. c0∘c1∘… |
IT |
step |
{a0,…,am,…,a2m,…}, |
m |
{a0,am,a2m,…} |
Std |
take |
{a0,…,ai−1,ai,…−−−−−}, |
i |
{a0,…,ai−1} |
{a0,…,an−1}, |
i wh. i≥n |
{a0,…,an−1} |
Std |
take_while |
{a0,…,ai−1,ai,…−−−}, |
p:&T→bool |
{a0,…,ai−1} wh. i is first wh. p(&ai)=false |