From 8bd4fd0cda1b4ca288f1b2d0f1218bf4c0cfa2b2 Mon Sep 17 00:00:00 2001 From: KtorZ Date: Tue, 20 Dec 2022 02:22:04 +0100 Subject: [PATCH] Add new acceptance test scenario MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ``` Error: × Main thread panicked. ├─▶ at /Users/ktorz/Documents/Projects/aiken-lang/aiken/crates/project/src/lib.rs:620:22 ╰─▶ called `Result::unwrap()` on an `Err` value: FreeUnique(Name { text: "test_foldr_list_int_data_list_int", unique: Unique(10) }) ``` --- examples/acceptance_tests/026/aiken.toml | 2 ++ examples/acceptance_tests/026/lib/test.ak | 21 +++++++++++++++++++++ 2 files changed, 23 insertions(+) create mode 100644 examples/acceptance_tests/026/aiken.toml create mode 100644 examples/acceptance_tests/026/lib/test.ak diff --git a/examples/acceptance_tests/026/aiken.toml b/examples/acceptance_tests/026/aiken.toml new file mode 100644 index 00000000..823f91da --- /dev/null +++ b/examples/acceptance_tests/026/aiken.toml @@ -0,0 +1,2 @@ +name = "acceptance_test_026" +version = "0.0.0" diff --git a/examples/acceptance_tests/026/lib/test.ak b/examples/acceptance_tests/026/lib/test.ak new file mode 100644 index 00000000..fd32641e --- /dev/null +++ b/examples/acceptance_tests/026/lib/test.ak @@ -0,0 +1,21 @@ +pub fn foldr(xs: List, f: fn(a, b) -> b, zero: b) -> b { + when xs is { + [] -> zero + [x, ..rest] -> f(x, foldr(rest, f, zero)) + } +} + +pub fn concat(left: List, right: List) -> List { + foldr(left, fn(x, xs) { [x, ..xs] }, right) +} + +pub fn flat_map(xs: List, f: fn(a) -> List) -> List { + when xs is { + [] -> [] + [x, ..rest] -> concat(f(x), flat_map(rest, f)) + } +} + +test flat_map_2() { + flat_map([1, 2, 3], fn(a) { [a, a] }) == [1, 1, 2, 2, 3, 3] +}