Difference between define, let and set!

Your confusion is reasonable: ‘let’ and ‘define’ both create new bindings. One advantage to ‘let’ is that its meaning is extraordinarily well-defined; there’s absolutely no disagreement between various Scheme systems (incl. Racket) about what plain-old ‘let’ means. The ‘define’ form is a different kettle of fish. Unlike ‘let’, it doesn’t surround the body (region where … Read more

How is Racket different from Scheme?

Racket is ultimately based on R5RS, and not R6RS and not a strict superset of either. I don’t think it can be called ‘Scheme’ because it’s not backwards compatible with any Scheme standard. Most implementations offer extensions, but are otherwise backwards compatible, of course, the compiler that comes with Racket can also run in R5RS … Read more