On Sat, Feb 18, 2012 at 12:51:23AM -0800, Joe Gilray wrote:
>    OK, I read some more and played around and got the behavior I wanted as
>    follows:
> 
>    (define primes-from-to
>      (let ([lastend 0] [storedlst '()])

This means that these variables are created once, while creating the
 value for 'prime-from-to' [which ends up being a function].
 Your original was impicitly

  (define primes-from-to
    (lambda (start end)
      (let ([lastend 0] [storedlst '()])
        <etc>)))

 which meant those variable would be created locally each time the lambda
 [via 'primes-from-to'] was called.

>        (lambda (start end)
[...]

>        (filter (lambda (v) (if (and (>= v start) (<= v end)) #t #f))
>    storedlst)
>        )))
[...]

Consider just (lambda (v) (and (>= v start) (<= v end))) --- no 'if'.

For symmetry put 'v' in order between start, end: (and (<= start v) (<= v end)) 
.
 That inspires: (<= start v end) .
____________________
  Racket Users list:
  http://lists.racket-lang.org/users

Reply via email to