diff --git a/t/tail-call.scm b/t/tail-call.scm new file mode 100644 index 00000000..7eb67383 --- /dev/null +++ b/t/tail-call.scm @@ -0,0 +1,13 @@ +(import (scheme base)) + +;;; always returns zero +(define (zero n) + (if (zero? n) + 0 + (zero (- n 1)))) + +;;; using apply +(define (zero-2 n) + (if (zero? n) + 0 + (apply zero-2 (list (- n 1)))))