This is a demonstration of various name binding issues in the Scheme Elucidator. This includes examples with define-syntax and syntax-rules. Do not expect that all the illustrated Scheme functions makes sense from a semantic point of view.
In this elucidative program we have modified the program style sheet to emphasize local name bindings using a light red color.
First look at p1. In the let form, car and length are simultaneously bound to length and car. Within the body of let, the names car and length refer to the locally defined name, not to R5RS names. Notice the linking from brown names to details in R5RS.
In p4 we see that we can locally bind the names car and cdr in a . The Elucidator is aware of these bindings.
In p5 it is illustrated that we can use lambda, case, and do as formal parameter names. In addition, we can locally bind the names length and if in a let*. Notice here, and above, that bold names are linked to R5RS.
The function p12 illustrates a named let.