From 5d0416aec9531a0a9797d3c3290f7b7ca9de4016 Mon Sep 17 00:00:00 2001 From: Matthew Flatt Date: Thu, 9 Apr 2009 00:58:13 +0000 Subject: [PATCH] David's build-list svn: r14472 --- collects/scheme/private/list.ss | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) diff --git a/collects/scheme/private/list.ss b/collects/scheme/private/list.ss index a5202a47f8..bd3dc7565c 100644 --- a/collects/scheme/private/list.ss +++ b/collects/scheme/private/list.ss @@ -225,13 +225,10 @@ (unless (and (procedure? fcn) (procedure-arity-includes? fcn 1)) (raise-type-error 'build-list "procedure (arity 1)" fcn)) - (if (zero? n) - '() - (let loop ([i 0] [a null]) - (if (= i n) - (reverse a) - (loop (add1 i) - (cons (fcn i) a)))))) + (let recr ([j 0] [i n]) + (cond [(zero? i) null] + [else (cons (fcn j) + (recr (add1 j) (sub1 i)))]))) (define compose (case-lambda