aiken/examples/acceptance_tests/028/lib/tests.ak

32 lines
478 B
Plaintext

pub fn filter(xs: List<a>, f: fn(a) -> Bool) -> List<a> {
when xs is {
[] ->
[]
[x, ..rest] ->
if f(x) {
[x, ..filter(rest, f)]
} else {
filter(rest, f)
}
}
}
pub fn unique(xs: List<a>) -> List<a> {
when xs is {
[] ->
[]
[x, ..rest] ->
[x, ..unique(filter(rest, fn(y) { y != x }))]
}
}
test unique_1() {
unique([]) == []
}
test unique_2() {
let xs =
[1, 2, 3, 1]
unique(xs) == [1, 2, 3]
}