5 ms·
Not the querient, but my first experience with Racket was something to the effect of: > (cons 'foo 'bar) ! error: bar is not a list There were several oth
by a1369209993 8y ago
Not the querient, but my first experience with Racket was something to the effect of:
> (cons 'foo 'bar)
! error: bar is not a list
There were several other condescendingly-reported gross implementation defects like this, most damningly a inability to define macros, which meant that Racket is not in fact a LISP, and the syntactic homogenity that makes LISPs annoying to work with (at the benfit of being able to generate and rewrite arbitrary program fragments on demand) serves no purpose whatsoever.
I later found out that this was apparently due to having been provided with a "teaching" version of the interpreter intended for beginning students (who presuably don't know any better), which makes it even worse.
I would definitely characterize my attitude toward Racket as "hate", and if acbart made the same mistake my (generally quite reasonable and competent) CS professor did, I wouldn't be surprised if their students felt likewise.
- spacesuitman2 8y agoThat's unfortunate. Perhaps people should be informed about `#lang racket` first, but I'm not sure how you missed this. It's fairly easy to see in the documentation.
- dzpower 8y agoIt does sound like you were expecting a full Lisp and instead were greeted with one of the Beginner Languages, intended to teach first time programmers in a very structured way. See https://docs.racket-lang.org/drracket/htdp-langs.html https://docs.racket-lang.org/drracket/htdp-langs.html The example that you give is not an error in full Racket: Welcome to DrRacket, version 6.12 [3m]. Language: racket, with debugging. > (cons 'foo 'bar) '(foo . bar) Similarly, full Racket has multiple, powerful macro systems, and more besides, deliberately excluded from the Teaching Languages. * * * I'm not an academic, but the community and core Racket team are incredibly supportive, and any Comp Sci professor running into difficulties teaching a Racket-based course can easily access plenty of support and guidance, starting by contacting the user mailing list.
- soegaard 8y agoAs you point out: Racket is different from the teaching languages.
- dragonwriter 8y ago> I later found out that this was apparently due to having been provided with a "teaching" version of the interpreter intended for beginning students (who presuably don't know any better), which makes it even worse. I think you still misunderstand; racket doesn't have different interpreter/compiler versions with different language features, racket code explicitly can request different languages via a language directive (I think there is a corresponding UI option in the Dr. Racket UI.) Among the preinstalled options are a series of teaching languages designed to accompany the textbook How to Design Programs, among others.