[racket] a little macro exercise
> Probably I'm missing something, since you know the compiler better than I do.
Not in the least; my points are pretty much abstract/academic.
> My understanding is that your code prescribes a series of branching tests, rather than giving the compiler a single n-way "case" and letting the compiler decide what the individual branch tests should be. That's the difference I was wondering about.
>
> Regarding chaining local closures with tail calls that are easy to optimize, I thought I had the same thing going on in my code.
Oh, quite possibly.
I think maybe we're not disagreeing about anything at all. I wasn't arguing that splitting up the `case' is better -- I actually prefer the version that has one single `case'. My point was just that some of the earlier versions which did a repeated "am I supposed to be falling through?" conditional seemed like they'd generate worse code, and that it should at least in theory be possible to generate unconditional jumps with the straight-line tail-calling code.
Dave