diff --git a/examples/acceptance_tests/012/aiken.toml b/examples/acceptance_tests/012/aiken.toml new file mode 100644 index 00000000..ed8f7704 --- /dev/null +++ b/examples/acceptance_tests/012/aiken.toml @@ -0,0 +1,2 @@ +name = "acceptance_test_012" +version = "0.0.0" diff --git a/examples/acceptance_tests/012/lib/test.ak b/examples/acceptance_tests/012/lib/test.ak new file mode 100644 index 00000000..b0a781e3 --- /dev/null +++ b/examples/acceptance_tests/012/lib/test.ak @@ -0,0 +1,18 @@ +use aiken/builtin + +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) + } + } +} + +test filter_1() { + filter([1, + 2, 3, 4, 5, 6], fn(x) { builtin.mod_integer(x, 2) == 0 }) == [2, 4, 6] +}