7 ms·
Is SICP the best way to learn Racket? https://mitpress.mit.edu/sites/default/files/sicp/full-text/book/book.html https://mitpress.mit.edu/sites/default/files/s
by jp0d 4y ago
Is SICP the best way to learn Racket?
https://mitpress.mit.edu/sites/default/files/sicp/full-text/book/book.html https://mitpress.mit.edu/sites/default/files/sicp/full-text/...
- rlp 4y agoBeautiful Racket is quite nice: https://beautifulracket.com/ https://beautifulracket.com/
- perihelions 4y agoSICP uses Scheme. Racket is a rather different, much larger language. Racket's default #lang isn't even compatible with SICP -- for example its cons cells aren't mutable. (Though it's perfectly fine to use Racket tooling with SICP or other Scheme books -- just set #lang scheme instead of #lang racket).
- Fellshard 4y agoDr. Racket does have an SICP #lang available; I'm not sure whether I got it through the package manager, or elsewhere.
- Jtsummers 4y agohttps://docs.racket-lang.org/sicp-manual/Installation.html https://docs.racket-lang.org/sicp-manual/Installation.html - Installation instructions.
- perihelions 4y agoLooks like a third-party package? https://docs.racket-lang.org/sicp-manual/index.html https://docs.racket-lang.org/sicp-manual/index.html
- jp0d 4y agoThank you. I did not know that. I thought Racket was a superset of Scheme with a lot of batteries included.
- bmitc 4y agoYou can very easily use Racket for SICP with minimal translations, even without the `#lang sicp` package. Racket's default cons cells aren't mutable, but Racket still has them. The `#lang sicp` package mainly provides the drawing needs that SICP uses as well as defaults for the MIT Scheme used in the book. https://blog.racket-lang.org/2007/11/getting-rid-of-set-car-and-set-cdr.html https://blog.racket-lang.org/2007/11/getting-rid-of-set-car-... https://docs.racket-lang.org/reference/mpairs.html https://docs.racket-lang.org/reference/mpairs.html
- jp0d 4y agoCheers mate.
- pjmlp 4y agoThat is how it started, as Dr. Scheme, then it decided to go its own way and they decided a new name to make this visible.
- bmitc 4y agoRacket still has mutable cons though. Just prefix everything with an `m`. https://docs.racket-lang.org/reference/mpairs.html https://docs.racket-lang.org/reference/mpairs.html
- jpe90 4y agoI had been combining in rnrs/mutable-pairs-6 when I needed mutable cons, I didn't realize they were available in the base language. Dangit.
- fn-mote 4y agoAbsolutely not. SICP is a fun way for a mathematically-strong person to learn a huge swath of computer science through experimentation and thinking about the results. You have to not just _do_ the exercises but _understand the results_. It's not an easy on ramp. You would be better off working through the Racket Guide [1] or one of the tutorials on their web site. [1] https://docs.racket-lang.org/guide/index.html https://docs.racket-lang.org/guide/index.html
- jp0d 4y agoThank you kind stranger. I actually chose to learn a bit of StandardML to understand functional programming, but every now and then when I see a post like this I get tempted to try Racket as well. I've got a copy of SICP on my desk and I've barely read 30 pages. Someday, I will.
- bmitc 4y agoTry out the Programming Languages Coursera by Dan Grossman. It starts with SML and then moves on to Racket.
- jp0d 4y agoI did a few lessons on Standard ML from it on Coursera. It's brilliant. Thank you.
- stewbrew 4y agoWhy would you want to learn racket after having learned sml? racket is great, no question about that, but it is mostly an educational tool and a "first language". I personally would rather choose a language with a broader real world user base. if you're interested mainly in functional programming, haskell would be a reasonable choice after sml. if not, there are plenty of other possibly more rewarding choices (on the long term).
- jp0d 4y agoActually, you're correct. The only reason I can think of is curiosity. Beyond that it has very little importance, to me personally. That's why I may never do it. But it definitely looks fun. I don't know about Haskell but I'm more interested in F#. Some of my colleagues have worked on Haskell in the academia.
- srcreigh 4y agoIt is a great book. I'm planning to use it to teach an 11 year old how to program. We've had one lesson. So far the format of me skimming SICP and giving him little challenges til he gets the content is working out. As an adult sure it's great. Just do it. It's more scheme than racket though, but that's plenty. Racket macros are important too and you won't get that from SICP. One does not (ever?) finish learning racket. Even its creators are still researching it.
- adamddev1 4y agoI think HTDP is a great way to learn Racket and quite helpful patterns for thinking about programming in general. Also much more entry level than SICP. https://htdp.org/ https://htdp.org/
- macco 4y agoI would say if you only want to learn the language the official docs are great. If you want to learn programming with Racket as the language How to Design Programs is great: https://htdp.org/ https://htdp.org/ Or if you want an online course How to Code 1 & 2 are exceptional: https://learning.edx.org/course/course-v1:UBCx+HtC1x+2T2017/home https://learning.edx.org/course/course-v1:UBCx+HtC1x+2T2017/...
- scns 4y ago> Or if you want an online course How to Code 1 & 2 are exceptional I second this. Greg Kiczales is an awesome teacher (and award winning computer scientist).