May I propose a slightly more useful macro instead: #lang racket
(define-syntax (myfor stx) (syntax-case stx () [(_ (i ...) for-clause todo ...) #'(for* ([i for-clause] ...) todo ...)])) (define (nestfortest . args) (displayln args)) (myfor (a b c) '(1 2) (displayln `(,a ,b ,c))) On Mar 13, 2012, at 8:02 PM, rob cook wrote: > To add to prior query - here's what I did, but I just think there *must* be a > more elegant solution. > > (define (nestfor depth forclause todo) > (define (nf depth forclause todo resultant) > (for ((x forclause)) > (if (= depth 1) > (apply todo (append (list x) resultant)) > (nf (- depth 1) forclause todo (append (list x) resultant))))) > (nf depth forclause todo empty)) > > (define (nestfortest . args) (displayln args)) > > (nestfor 3 '(1 2) nestfortest) > ____________________ > Racket Users list: > http://lists.racket-lang.org/users ____________________ Racket Users list: http://lists.racket-lang.org/users