# [racket] static variables question

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) .