
Scheme is a general purpose programming language descended from Algol and Lisp. Because it is conceptually clean and simple, it is an easy language to learn. At the same time, it is a powerful language, and full mastery of its power requires careful study and practice. Scheme is widely used in computing education and research, as well as for a broad spectrum of industrial applications ranging from graphical user interfaces and language compilers to virtual reality engines, web navigators, and enterprise computing solutions. This revised edition of The Scheme Programming Language provides an introduction to the language for readers with some programming experience. Beginning with a gentle introduction for novice Scheme programmers, it leads the reader through a series of progressively more difficult examples that introduce each of the major features of the language. Advanced concepts and features are thoroughly covered with examples and exercises appropriate even for more experienced programmers.
It's free online: https://scheme.com/tspl4/
stack traces are esoteric and error messages entirely unhelpful,
documentation masquerades as deep but is indeed inconsistent and prosaic, mixing styles of reference, explanation, and how-to willy-nilly, (compare with Dybvig’s The Scheme Programming Language, which is focused and consistent, and it takes no time to get your answers; there’s just no method to guile and guix manuals), i hate it big time,
there’s big gaps in documentation (especially with Guix – there’s literally zero information about `define-record-type*` which is used everywhere in its codebase; admittedly, not scheme related, but still),
the cli requires too much memorization,
most modules are not named, but numbered, ie, instead of something like `(base list)`, you get `(srfi srfi-1)`, so you need to either memorize, or go through the info pages for each procedure you need to import, which means you also need to know the exact names for the procedures you need beforehand,
there’s like 4 ways to define a record, each with a different feature set and incompatibilities,
etc.
these are the reasons i find it hard to use.
to respond to the content of the article, the different neurotype idea is off, because scheme allows you very well to express sequences of operations; the ecosystem of APIs may not cater to this tho. although if it was rephrased into “scheme emphasizes symbolic manipulations, as opposed to operating a machine”, i would agree
If you are interested in learning Scheme, please help yourself. And have fun hacking !
Dear Schemers,
I would like to ask you which resources would you recommend to a beginner to get started in the Scheme world (and hopefully like it) ? Here are mine :
For readers :
SICP (Harold Abelson, Gerald Jay Sussman, Julie Sussman )
HtDP (Matthias Felleisen, Robert Bruce Findler, Matthew Flatt, Shriram Krishnamurthi)
The Little Schemer (Daniel P. Friedman, Matthias Felleisen)
Teach Yourself Scheme in Fixnum Days (Dorai Sitaram)
The Scheme Programming Language (R. Kent Dybvig)
For video watchers : Andy Balaam videos
For practitioners : Exercism.io
Programming Praxis
Anything else ?The Scheme Programming Language, 4th Ed. by R. Kent Dybvig[1]
Simply Scheme: Introducing Computer Science by Brian Harvey and Matthew Wright, 2nd Ed.[2]