Hacker News new | ask | show | jobs
by gcr 4697 days ago
Racketeer on and off since 2010. It's a really great language; I encourage everyone to at least give it a try.

The racket docs (http://docs.racket-lang.org/) have a list of tutorials at the top. There's a visual art/programming tutorial for those new to lisp (http://docs.racket-lang.org/quick/) and a webapp one (http://docs.racket-lang.org/continue/) that demonstrates Racket's built-in web framework.

2 comments

It is nice! My main issue is that Dr Racket is so pleasant I'm sorely tempted to use it and it brings my laptop to its knees (that feature that draws arrows from uses of identifiers to their definitions always freezes my computer for half a second to a second; if I evaluate something that consumes any non-trivial amount of memory Dr Racket starts swapping like it's 1999 and becomes unresponsive). I used Racket for a while from the REPL and everything worked beatifully but I constantly missed the Dr. In the end I switched to Chicken, which at least for my programs seems to be quite a bit faster too (I mean compiled Chicken code vs JITed Racket, of course, the Racket JIT is usually substantially faster than interpreted Chicken). Chicken also has great library support, so switching was not painful at all.

(Of course, I don't write fancy macros, so I wasn't taking advantage of Racket. For 99% of the macros I write syntax-rules is good enough.)

A few other things I prefer the SRFI way, for example, Racket's comprehensions seem awkward compared to SRFI-42 (in particular Racket decided to call the main comprehension for*/list, leaving prettier and shorter names to less useful variants such as the exotic parallel-by-default for/list, or the execute-for-side-effects and parallel-by-default for); but all in all I agree that Racket is pretty sweet. If ever own a computer with more than 2GB of ram I'll definitely give it another shot.

I imagine that the names for for/list and its counterpart came from the scheme let and let*, which are parallel and sequential respectively.
You can click on the colored circle in the lower right corner of the screen to turn the "Online Check Syntax" off, by the way.
I think it might have the best documentation of any Lisp.
The fact that the documentation is written in a form of Racket really helps with that, I think.

Having the documentation be parsed by the same infrastructure that understands the programs that you're annotating really goes a long way toward making the documentation cross-referenceable and easy for developers to work with.

I just wish there were an established way of documenting Packages (the PLaneT replacement).