OMG! I'm so excited to announce that through my work at @spritelyinst we've published A Scheme Primer: spritely.institute/news/the-sp
Direct link: spritely.institute/static/pape

This document manages to serve two purposes:
- As a quick skim, it's a reasonable intro to "how to start programming with Scheme with no prior experience". Hey, tutorials are useful!
- But also, in less than 30 pages we manage to compress a TON of computer science ideas in a way that I think is really, really approachable.

The document ends with a code example, and full walkthrough, of a Scheme interpreter written in Scheme... in a mere 30 lines of code! It's like 3/4 of Structure and Interpretation of Computer Programs compressed into a document you could read in an afternoon!

Follow

opinion by relatively experienced programmer for whom this was the first serious view at a lisp 

@cwebber I've read through the whole thing and I have some criticisms, but in general thanks for creating this, it was definitely educational!

First some small editorial things: is one place you say "square root" where I believe you mean "square", and one of the "eval" examples seems to be missing a "'()" as the second argument.

As for didactic value the whole thing is written quite well, with only two problems imo: 1. some of the later examples are underexplained -- this is kinda ok if you want readers to figure out what they are about themselves, but this should probably be specified explicitly and probably clashes with the goal of this being accessible for inexperienced programmers, 2. the connection between lists and quoting is present implicitly but never explored explicitly -- I don't know much about it, but I suspect it might be too involved of a topic for the main text, so maybe mentioning it in a footnote with a link to further reading would be good?

As for Scheme itself it looks cool, but I'm unable to treat any language that is not strongly statically typed seriously. D; Also pattern matching not being a build in feature feels weird, but I respect that it can be added easily. (I also understand and respect the decisions behind typing, I just disagree with them. >:)

Once again thanks for writing this, if I ever need to point someone to a quick primer about Scheme this is an invaluable resource!

@spritelyinst

Sign in to participate in the conversation
Qoto Mastodon

QOTO: Question Others to Teach Ourselves. A STEM-oriented instance.

An inclusive free speech instance.
All cultures and opinions welcome.
Explicit hate speech and harassment strictly forbidden.
We federate with all servers: we don't block any servers.