[plt-scheme] Help with ...
On Sat, May 16, 2009 at 4:22 PM, Eli Barzilay <eli at barzilay.org> wrote:
> On May 16, Todd O'Bryan wrote:
>
> > And I'm supposed to rewrite letfuns so that it can handle mutually
> > recursive functions. More concretely, I write
> >
> > (rewrite (letfuns ([(f x) E] ...) B)
> > => (my-code-here))
> >
> > so that something like this
> >
> > (letfuns
> > ([(even? n) (if (= n 0) #t (odd? (- n 1)))]
> > [(odd? n) (if (= n 0 #f (even? (- n 1))))])
> > (even? 123))
> >
> > would produce the expected answer.
> >
>
> Well, since `f' (for example) is the list of function names, you could
> write
>
> (rewrite (letfuns ([(f x) E] ...) B)
> => (list 'f ...))
>
> This will make a `letfuns' expression evaluate to a list of the
> function names as symbols.
OK. I think I understand now. I need to combine (list 'f ...) (list x ...)
and (list E ...) in the correct way, using map.
I'm having trouble keeping clear which level--syntactic or semantic--and
which language--the underlying implementation language or the language I'm
interpreting--I'm working in. Which is, I guess, the point. :-)
Todd
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.racket-lang.org/users/archive/attachments/20090516/cb0d2b41/attachment.html>