diff --git a/examples/acceptance_tests/028/aiken.toml b/examples/acceptance_tests/028/aiken.toml new file mode 100644 index 00000000..c4506310 --- /dev/null +++ b/examples/acceptance_tests/028/aiken.toml @@ -0,0 +1,2 @@ +name = "acceptance_test_028" +version = "0.0.0" diff --git a/examples/acceptance_tests/028/lib/test.ak b/examples/acceptance_tests/028/lib/test.ak new file mode 100644 index 00000000..fd46f0c0 --- /dev/null +++ b/examples/acceptance_tests/028/lib/test.ak @@ -0,0 +1,27 @@ +pub fn filter(xs: List, f: fn(a) -> Bool) -> List { + when xs is { + [] -> [] + [x, ..rest] -> + if f(x) { + [x, ..filter(rest, f)] + } else { + filter(rest, f) + } + } +} + +pub fn unique(xs: List) -> List { + 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] +}