From a51808d5499aa826a3a99ea81ce9a70ebc7e32ce Mon Sep 17 00:00:00 2001 From: KtorZ Date: Sat, 17 Dec 2022 13:36:23 +0100 Subject: [PATCH] Add new acceptance test scenario (022) ``` thread 'main' has overflowed its stack fatal runtime error: stack overflo ``` --- examples/acceptance_tests/022/aiken.toml | 2 ++ examples/acceptance_tests/022/lib/test.ak | 23 +++++++++++++++++++++++ 2 files changed, 25 insertions(+) create mode 100644 examples/acceptance_tests/022/aiken.toml create mode 100644 examples/acceptance_tests/022/lib/test.ak diff --git a/examples/acceptance_tests/022/aiken.toml b/examples/acceptance_tests/022/aiken.toml new file mode 100644 index 00000000..75d8e0e0 --- /dev/null +++ b/examples/acceptance_tests/022/aiken.toml @@ -0,0 +1,2 @@ +name = "acceptance_test_022" +version = "0.0.0" diff --git a/examples/acceptance_tests/022/lib/test.ak b/examples/acceptance_tests/022/lib/test.ak new file mode 100644 index 00000000..7574b0a6 --- /dev/null +++ b/examples/acceptance_tests/022/lib/test.ak @@ -0,0 +1,23 @@ +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 filter_map(xs: List, f: fn(a) -> Option) -> List { + foldr( + xs, + fn(x, ys) { + when f(x) is { + None -> ys + Some(y) -> [y, ..ys] + } + }, + [], + ) +} + +test filter_map_1() { + filter_map([], fn(_) { Some(42) }) == [] +}