FYI, brudgers makes good points, but the beauty of Racket is they have subsets and supersets of languages, from an Algol implementation to a specialized language built for studying SICP. Neil van Dyke and some other Racketeers built it. I think it might be in need of a maintainer, but here it is nonetheless.
Also keep in mind there is a different subset language designed by one of the developer/professors for his own book based upon his improvements to the SICP methodology, entitled How to Design Programs, as explained in his paper.
Felleisen's How to Design Programs has an entirety different set of goals than SICP. HtDP teaches programming practices. SICP teaches 'computer science.'
HtDP is a great book, but no substitute for SICP in terms of content.
While I haven't read HtDP, I've read similar things.
I'm in my late 20s going for a second BS (this time in comp sci), and wanted to go through SICP on my own (plus the online lectures). I felt that I needed a bit of a warmup, though, and chose 'Concrete Abstractions' instead of HtDP. I'm satisfied with it so far.
It may seem obvious but HtDP emphasizes designing programs. It's not really trying to teach theories of computer science or abstractions. It's about developing coding habits - in terms of SICP it's all about good wishful thinking.
SICP, and this is not a criticism, is more like a stamp collection of computer science topics. It provides a point of reference when I've read about operating systems, state machines, compilers, data structures, etc. etc.
Between the two, SICP is flat out a better book qua book. On the other hand, working through just a little of HtDP will probably have more impact on the way you write software than working through a little of SICP.
Lastly, while there may be some similarities to other introductory texts, I doubt that there is any computing pedagogy backed by as much research as Felleisen and the PLT group. While SICP and Scheme were intended to facilitate teaching, the Racket ecosystem [and PLT Scheme before it] are continuously developed with pedagogy as a primary driver.
Most pedagogy is driven by "I think this would be a better way to teach programming." The PLT group checks their theories statistically and their theories are tied to educational theories in general. And they've been going down that road for several decades.
http://www.neilvandyke.org/racket-sicp/
Also keep in mind there is a different subset language designed by one of the developer/professors for his own book based upon his improvements to the SICP methodology, entitled How to Design Programs, as explained in his paper.
http://www.ccs.neu.edu/racket/pubs/fdpe2002-fffk.pdf
The second edition is available as HTML pages amongst the URLS below.
http://docs.racket-lang.org/teachpack/2htdpuniverse.html
http://www.ccs.neu.edu/home/matthias/HtDP2e/