diff options
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 |