diff options
| author | 2022-08-14 11:16:03 +0200 | |
|---|---|---|
| committer | 2022-08-14 11:16:03 +0200 | |
| commit | 0d1e125832d0fd8ca31c5f782e7c3db774ae5a02 (patch) | |
| tree | e4622f75a8307d8ee1970f8bd6cc92766582f0ba /examples/ack.cff | |
| parent | c129f77ad724aa940b53a125de0e1e4de0ca7240 (diff) | |
woa
Diffstat (limited to 'examples/ack.cff')
| -rw-r--r-- | examples/ack.cff | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/examples/ack.cff b/examples/ack.cff new file mode 100644 index 0000000..233abc2 --- /dev/null +++ b/examples/ack.cff @@ -0,0 +1,15 @@ +import "libc.hff"; + +fn ack(m uint, n uint) uint { + if m == 0 { return n + 1; } + if n == 0 { return ack(m - 1, 1); } + return ack(m - 1, ack(m, n - 1)); +} + +extern fn main() void { + for let m = 0; m <= 4; ++m { + for let n = 0; n < 6 - m; ++n { + printf("A(%u,%u) = %u\n", m, n, ack(m, n)); + } + } +} |