Since the inner-most lambda block references the list ("l"), aren't the
nested lambda's the cleanest implementation? Otherwise, you would have to
use currying, which looks like it would add complexity (based on a random
article i just found, here
http://www.engr.uconn.edu/~jeffm/Papers/curry.html)The only other way would be to completely refactor out the map, right? On Fri, Jun 8, 2012 at 10:25 AM, Ashok Bakthavathsalam <[email protected]>wrote: > Below, I have enclosed the code from Rosetta for generating Permutations. > Can someone show me how to replace nested lambdas with defines? > Thanks, > > (define (insert l n e) > > > (if (= 0 n) > > > (cons e l) > > > (cons (car l) > > > (insert (cdr l) (- n 1) e)))) > > > > (define (seq start end) > > > (if (= start end) > > > (list end) > > (cons start (seq (+ start 1) end)))) > > > > (define (permute l) > > > (if (null? l) > > > '(()) > > > (apply append (map (lambda (p) > > > (map (lambda (n) > > > (insert p n (car l))) > > > (seq 0 (length p)))) > > > (permute (cdr l)))))) > > > ____________________ > Racket Users list: > http://lists.racket-lang.org/users > >
____________________ Racket Users list: http://lists.racket-lang.org/users

