From 5f86130930c19277fbf0ef3433cc43ab93aacf3f Mon Sep 17 00:00:00 2001 From: tomsmeding Date: Tue, 26 Nov 2019 13:46:29 +0100 Subject: declare defines for top-level mutual recursion --- tests/mutual-recursion.lisp | 15 +++++++++++++++ tests/mutual-recursion.out | 13 +++++++++++++ 2 files changed, 28 insertions(+) create mode 100644 tests/mutual-recursion.lisp create mode 100644 tests/mutual-recursion.out (limited to 'tests') 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 -- cgit v1.2.3-70-g09d2