dedup
fn dedup(Vec<int> xs) -> Vec<int>fn dedup(Vec<string> xs) -> Vec<string> Import
Source: use collections::vec::{dedup}; src/collections/vec.hy Returns xs with runs of equal neighbours collapsed to one value. There is an int and a string version.
Only adjacent duplicates are removed; sort first to remove all of them.
fn dedup(Vec<int> xs) -> Vec<int>#
Parameters#
| Name | Type |
|---|---|
xs | Vec<int> |
Returns#
Vec<int>
Contracts#
Checked according to --contracts (see Contracts).
ensures result.len() <= xs.len()
ensures xs.len() == 0 || result.len() > 0
fn dedup(Vec<string> xs) -> Vec<string>#
Returns xs with runs of equal neighbours collapsed to one value.
Parameters#
| Name | Type |
|---|---|
xs | Vec<string> |
Returns#
Vec<string>
Contracts#
Checked according to --contracts (see Contracts).
ensures result.len() <= xs.len()
ensures xs.len() == 0 || result.len() > 0
Examples#
use collections::vec::{dedup};
use tests::assert;
let xs: Vec<int> = [1, 1, 2, 2, 2, 1];
let d = dedup(xs);
assert!(d.len() == 3);
See also#
intstringfold_int: The same asfold; kept for older code.contains: Returnstruewhenneedleis inxs.index_of: Returns the index of the firstneedleinxs, or-1.binary_search: Findsneedlein the ascending vectorxsby halving, and returns an index holding it.map: Returns a new vector withmapperapplied to each element, in order.filter: Returns the elements for whichpredistrue, in order.