Hacker News new | ask | show | jobs
by norswap 4706 days ago
From my cursory glance at the book, I always felt the title was misleading. It is more a general introduction to programming through Scheme, with a focus on good practice than a treatise on software architecture.
1 comments

HtDP, unlike SICP, begins with a purely functional subset of Scheme, BSL (Beginning Student Language). While this obviously means students will learn Scheme from the course, the purpose is to remove syntax and imperative programming from the equation - there is no set! and no macros. There is not even (list...) or lambda or closures or local functions.[1]

In short, BSL is pretty neutral from a language holy war standpoint. Which is not to say that those who self-select to engage with the book as teachers and students are not likely to be somewhat biased toward the Lisp camp - clean syntax and functional style programming are standard arguments in favor of Lisp in language wars.

The other distinction of HtDP is that is definitely not OOP based. The analog in terms of pedagogy might be MIX - there are certain ideas which it is desirable for the language to expose, and OOP hides a lot of those things.

[1] O.K. There is lambda in BSL, actually. But it can only be used in the body of a function definition like this:

  (define (foo x)
    (lambda (x) (* 1 x)))
Outside this (define...) form, lambda is not allowed in BSL.