6 ms·
Racket Scheme & SICP is a fun way to start playing, especially if you are into theoretical concepts of CS and programming, like higher order programming and abs
by pixelmonkey 6y ago
Racket Scheme & SICP is a fun way to start playing, especially if you are into theoretical concepts of CS and programming, like higher order programming and abstraction.
The documentation for Racket is excellent, see e.g.
https://docs.racket-lang.org/quick/index.html https://docs.racket-lang.org/quick/index.html
... and many people have created online resources to adapt SICP to Racket, as well as other learning texts. I like Beautiful Racket, e.g.
https://beautifulracket.com/explainer/lists.html https://beautifulracket.com/explainer/lists.html
You can use #lang sicp and start playing around with the free online reformatted SICP text here:
http://sarabander.github.io/sicp/ http://sarabander.github.io/sicp/
I recommend getting a print copy of SICP, though, and working through the examples in a real DrRacket environment on your computer.
IMO, if you end up going deep in the "lispy" direction after playing with Racket, you'll probably be drawn to Clojure as it is the Lisp with the biggest "production use" community at the moment. So long as you can put up with some JVM warts, it, too, will be a good experience.
- estsauver 6y agoSICP is also a fantastic book because such a high percentage of all of the interview questions you'll be asked are represented there, but you end up really quite fundamentally understanding the solutions and I think that translates really well into the code people write in interviews.
- tartoran 6y agoI also recommend a milder version, a stepping stone, before jumping to SICP, Simply Scheme. The book is available online for free[0] [0]:https://people.eecs.berkeley.edu/~bh/ssch1/showing.html https://people.eecs.berkeley.edu/~bh/ssch1/showing.html
- coold 6y agoCan I read SICP while learning Clojure? Is lisp very different?
- palerdot 6y ago> Can I read SICP while learning Clojure? Is lisp very different? Clojure is Lisp!!! with some nice out of the box semantics like immutability.
- toby 6y agoThere are a few people who have translated the solutions to Clojure, this one looks like the most comprehensive: http://www.sicpdistilled.com/ http://www.sicpdistilled.com/
- WillPostForFood 6y agoIt looks like only chapter 1 is completed. A lot of chapter 2, and the just bits of 3 and 4.
- db48x 6y agoI wouldn't, unless you already know Scheme well. Otherwise, you're essentially learning two programming languages at once, and you won't know if your mistakes are because you misunderstand Scheme, Clojure, or both.
- zelphirkalt 6y agoNot sure Clojure can do all the recursion stuff (TCO), which would be good to have in a language, when working through SICP exercises. I would not recommend it for SICP. Better start with a Scheme, to have the least amount of friction.
- fulafel 6y agoYou can trivially use recur for self-recursion: call (recur x) instead of (my-fn x) inside your function. (There's also trampoline for mutual recursion cases)
- zelphirkalt 6y agoIs trampolining automatic, or does it have its own syntax as well? Even a little thing like (recur ...) could be a tiny amount of friction. But good to read, that the usual cases are apparently handled well in the language.
- randombaseball 6y agoI'd like to add that there's also a large Discord community for Lispers here: https://discord.gg/eHectVPqJ4 https://discord.gg/eHectVPqJ4
- masukomi 6y agoI have to second this. Racket is absolutely the best place to start. There are great books for beginners, and the documentation is top notch. it comes with its own editor (Dr. Racket) that does some really helpful things for beginners, like hovering over a variable and seeing lines drawn to where it's being used. It's not the fastest lisp, but that's ok. It's spectacular for learning and has a huge ecosystem too. My "daily driver" is Chicken Scheme, but i wouldn't recommend it to a beginner. The docs just aren't helpful to newbs (and frequently frustrating to me even though it has one of the better set of docs) Vim is meh for Lisp & Scheme, and I'm a Vim fan. Emacs is great. If you're a Vim user check out Doom Emacs. It's great for us geeks who love vim but want more power and better lisp support. But... start with Dr. Racket for now. Others have mentioned the SICP book, and it is good but i wouldn't suggest it as as "how to start with lisp" book. Also, watch the free lectures of the course from MIT. Very good, and make it way easier to work through the book.
- Olical 6y agoI'm trying to make the neovim lisp world a little more pleasant with Conjure :) just for those that absolutely can not switch to emacs long term (like me) https://github.com/Olical/conjure https://github.com/Olical/conjure It's written in a lisp, runs as lua and supports: Clojure, Fennel, Racket and Janet with a bunch more to come.
- kls 6y agoVim is meh for Lisp & Scheme, and I'm a Vim fan. Emacs is great. If you're a Vim user check out Doom Emacs. There is always spacemacs: https://www.spacemacs.org/ https://www.spacemacs.org/
- slgeorge 6y agoClojureScript which targets JavaScript as the host language (https://clojurescript.org/ https://clojurescript.org/) is a good option on the Clojure side. ClojureScript is great if you're drawn towards the "production use" side as pixelmonkey said and already have knowledge of the Javascript / Node ecosystem.