diff options
Diffstat (limited to 'samples/rosetta/function_composition.bruijn')
-rw-r--r-- | samples/rosetta/function_composition.bruijn | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/samples/rosetta/function_composition.bruijn b/samples/rosetta/function_composition.bruijn new file mode 100644 index 0000000..3415c5e --- /dev/null +++ b/samples/rosetta/function_composition.bruijn @@ -0,0 +1,21 @@ +:import std/Number . + +# composition, bluebird combinator +…∘… [[[2 (1 0)]]] + +:test (((inc ∘ (mul (+2))) (+3)) =? (+7)) ([[1]]) + +# 2x composition, blackbird combinator +…∘∘… [[[[3 (2 1 0)]]]] + +:test (((inc ∘∘ mul) (+2) (+3)) =? (+7)) ([[1]]) + +# 3x composition, bunting combinator +…∘∘∘… [[[[[4 (3 2 1 0)]]]]] + +:test (((inc ∘∘∘ (add ∘∘ mul)) (+1) (+2) (+4)) =? (+7)) ([[1]]) + +# reverse composition, queer bird combinator +…→… [[[1 (2 0)]]] + +:test ((((mul (+2)) → inc) (+3)) =? (+7)) ([[1]]) |