Skip to content
dann toliver edited this page Feb 27, 2014 · 7 revisions

This week: The Elements of Programming!

--- SICP intro ---

  • xii: Perlis on fun
  • xiii: "three foci of phenomena: the human mind, collections of computer programs, and the computer"
  • xiv: "complete formal arguments of correctness seldom accompany large programs"
  • xvi: "Every reader should ask himself periodically 'Toward what end, toward what end?'—but do not ask it too often lest you pass up the fun of programming for the constipation of bittersweet philosophy"
  • xvi: "Lisp and Fortran may well continue in active use for at least another quarter-century."
  • xvii: pyramids vs organisms
  • xix: "Is it possible that software is not like anything else, that it is meant to be discarded: that the whole point is to always see it as a soap bubble?"
  • xxii "programs must be written for people to read, and only incidentally for machines to execute"
  • xxiii "procedural epistemology: the study of the structure of knowledge from an imperative point of view, as opposed to the more declarative point of view taken by classical mathematical subjects" -- 29.20

--- SICP 1.1 ---

  • 1: "Computational processes are abstract beings that inhabit computers."
  • 6: "Every powerful language has three mechanisms... primitive expressions, means of combination, means of abstraction" -- they left out Locke's "relations".
  • 9: three-space indentation!
  • 12: no order given for subexpression eval; fexprs?
  • 21: normal-over vs applicative-order evaluation
  • 25: 'and' and 'or' as special forms -- is it necessary? (sugar => cancer of the semicolon) (Ex 1.6)

Ex 1.3:

(define (sumsqlarge x y z) 
    (cond ((> x y z) (sum-of-squares x y))
          ((> y z x) (sum-of-squares y z))
          ((> z x y) (sum-of-squares z x))
          ((> z y x) (sum-of-squares z y))
          ((> y x z) (sum-of-squares y x))
          ((> x z y) (sum-of-squares x z))))

Ex 1.5 (define (p) (p)) ---- why not just (define p p) ?

weekly recap message

Hi all,

Tonight we covered chapter 1.1 and some small bits of 1.2. For next week we'll be reading 1.2 and doing all of the exercises. We'll discuss the chapter and the work and have several short presentations on SICP-related topics next Friday.

I'll be setting up a github account to compliment this community page. I'll post details here once that's up (likely late next Friday afternoon). In the meantime, post any homework questions in the SICP Chapters category here.

Happy Thanksgiving! See you next week!

Oct 11

Clone this wiki locally