diff options
author | Marvin Borner | 2024-03-25 18:59:03 +0100 |
---|---|---|
committer | Marvin Borner | 2024-03-25 18:59:48 +0100 |
commit | 14e38ce378236cf54924b58396168c1e94f8e6b2 (patch) | |
tree | ecbbb75517695de8897a2a9c58aa1a97ec2546f5 /samples/rosetta/ackermann-function.bruijn | |
parent | f8398804d351667a7b887b89f6f70c7d5c407d22 (diff) |
Improved samples by adding links to problems
Diffstat (limited to 'samples/rosetta/ackermann-function.bruijn')
-rw-r--r-- | samples/rosetta/ackermann-function.bruijn | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/samples/rosetta/ackermann-function.bruijn b/samples/rosetta/ackermann-function.bruijn new file mode 100644 index 0000000..c0689f1 --- /dev/null +++ b/samples/rosetta/ackermann-function.bruijn @@ -0,0 +1,17 @@ +:import std/Combinator . +:import std/Number/Unary U +:import std/Math . + +# unary ackermann +ackermann-unary [0 [[U.inc 0 1 (+1u)]] U.inc] + +:test (ackermann-unary (+0u) (+0u)) ((+1u)) +:test (ackermann-unary (+3u) (+4u)) ((+125u)) + +# ternary ackermann (lower space complexity) +ackermann-ternary y [[[=?1 ++0 (=?0 (2 --1 (+1)) (2 --1 (2 1 --0)))]]] + +:test ((ackermann-ternary (+0) (+0)) =? (+1)) ([[1]]) +:test ((ackermann-ternary (+3) (+4)) =? (+125)) ([[1]]) + +main [[0]] |