diff options
author | tomsmeding <tom.smeding@gmail.com> | 2019-11-26 13:46:29 +0100 |
---|---|---|
committer | tomsmeding <tom.smeding@gmail.com> | 2019-11-26 13:46:29 +0100 |
commit | 5f86130930c19277fbf0ef3433cc43ab93aacf3f (patch) | |
tree | 22c11dc678a6262c44a34630076824f941193043 /tests | |
parent | 9de16e245424e62318cdce4909e33c256f585cb6 (diff) |
declare defines for top-level mutual recursion
Diffstat (limited to 'tests')
-rw-r--r-- | tests/mutual-recursion.lisp | 15 | ||||
-rw-r--r-- | tests/mutual-recursion.out | 13 |
2 files changed, 28 insertions, 0 deletions
diff --git a/tests/mutual-recursion.lisp b/tests/mutual-recursion.lisp new file mode 100644 index 0000000..4c054ea --- /dev/null +++ b/tests/mutual-recursion.lisp @@ -0,0 +1,15 @@ +#include "stdlib.lisp" + +(declare g) + +(define f (n) + (do + (print (concat "f " (number->string n))) + (if (>= n 100) n (g (* 2 n))))) + +(define g (n) + (do + (print (concat "g " (number->string n))) + (if (>= n 100) n (f (+ n 1))))) + +(print (f 1)) diff --git a/tests/mutual-recursion.out b/tests/mutual-recursion.out new file mode 100644 index 0000000..7e2e305 --- /dev/null +++ b/tests/mutual-recursion.out @@ -0,0 +1,13 @@ +f 1 +g 2 +f 3 +g 6 +f 7 +g 14 +f 15 +g 30 +f 31 +g 62 +f 63 +g 126 +126 |