I want to, (take k (in-generator (infinite-generator (yield (random n)))))
where k and n are positive integers, k<n. Unfortunately, 'in-generator' returns a sequence while 'take' needs a list and calling 'sequence->list' results in an error. So, I thought maybe I needed 'take' from 'lazy'. But it also complains about the index being too large. That's when I encountered a possible (minor) bug with 'take' vs 'lazy/take'. They appear to have their arguments swapped: > (take '(a b) 1) '(a) > (require (only-in lazy [take lazy-take])) > (lazy-take '(a b) 1) . . take: expects type <non-negative exact integer> as 1st argument, given: '(a b); other arguments were: 1 My current approach aside, is there a better way? Here's my workaround, (define (call-n-times f n) (define (helper f n lst) (if (< n 1) lst (helper f (- n 1) (cons (f) lst)))) (helper f n '())) (define (take-randoms k n) (call-n-times (curry random n) k)) -- Ian Tegebo ____________________ Racket Users list: http://lists.racket-lang.org/users