diff --git a/examples/acceptance_tests/108/aiken.lock b/examples/acceptance_tests/108/aiken.lock new file mode 100644 index 00000000..6e350cda --- /dev/null +++ b/examples/acceptance_tests/108/aiken.lock @@ -0,0 +1,7 @@ +# This file was generated by Aiken +# You typically do not need to edit this file + +requirements = [] +packages = [] + +[etags] diff --git a/examples/acceptance_tests/108/aiken.toml b/examples/acceptance_tests/108/aiken.toml new file mode 100644 index 00000000..8823803a --- /dev/null +++ b/examples/acceptance_tests/108/aiken.toml @@ -0,0 +1,9 @@ +name = "aiken-lang/108" +version = "0.0.0" +license = "Apache-2.0" +description = "Aiken contracts for project 'aiken-lang/108'" + +[repository] +user = "aiken-lang" +project = "108" +platform = "github" diff --git a/examples/acceptance_tests/108/lib/tests.ak b/examples/acceptance_tests/108/lib/tests.ak new file mode 100644 index 00000000..8dc074fa --- /dev/null +++ b/examples/acceptance_tests/108/lib/tests.ak @@ -0,0 +1,44 @@ +use aiken/builtin + +pub fn reduce(xs: List, zero: b, do: fn(a, b) -> b) -> b { + when xs is { + [] -> zero + [head, ..tail] -> do(head, reduce(tail, zero, do)) + } +} + +pub fn inspect_1(self: Data, result: result) -> result { + builtin.choose_data( + self, + fail, + fail, + reduce(builtin.un_list_data(self), result, fn(a, b) { inspect_1(a, b) }), + { + trace @"int" + result + }, + fail, + ) +} + +test as_lambda() { + inspect_1([14, 42], True) +} + +pub fn inspect_2(self: Data, result: result) -> result { + builtin.choose_data( + self, + fail, + fail, + reduce(builtin.un_list_data(self), result, inspect_2), + { + trace @"int" + result + }, + fail, + ) +} + +test as_identifier() { + inspect_2([14, 42], True) +}