[racket] recursion?? two

From: Hendrik Boom (hendrik at topoi.pooq.com)
Date: Wed Jun 6 10:14:53 EDT 2012

On Wed, Jun 06, 2012 at 03:17:30AM -0700, Ronald Reynolds wrote:
> Is it correct to say that when I call a function inside of it's own 
> definition I am just making it repeat loop?  
> (define (my-map f lst) 
>   (cond 
>    [(empty? lst) empty] 
>    [else (cons (f (first lst)) 
>                (my-map f (rest lst)))]))  
>  Is this code telling racket to repeat until lst is empty?  Thx to all 
> for your help.  
> 

Yes, it does keep calling itself with smaller and smaller tails of the 
original list until the list is empty.

And this part couldl be easily done in a loop.

But where this differs from a loop is that when all these functino calls 
start returning. it does work on the way out -- all those cons'es.  That 
is more difficult to do with a loop.

-- hendrik

Posted on the users mailing list.