# [racket] Replacing lambdas with defines

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
<ashokb at kggroup.com>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
*>*
*>*
*-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.racket-lang.org/users/archive/attachments/20120608/105d4066/attachment.html>