1. 14

  2. 6

    I learned to program from David Touretzky’s book. It’s a pedagogical gem – the information is presented from multiple angles and the subject matter is relatable. For example:, exercises for the mapcar function include generalizing musical transposition from single notes to entire melodies. The examples and coding tasks are very rewarding for someone without a CS education, as solving them usually yields some small chunk of CS knowledge. Example: can you implement all the boolean functions using only nand?

    It would probably be a total bore for most lobste.rs readers, but I still recommend it as a great introduction to programming for the motivated beginner. In my opinion it fills this niche better than SICP.

    1. 1

      All computation is “symbolic computation”.

      Lisp puts more emphasis on code and data being the same thing. But there ultimately is no absolute difference between code and data in any language - or any Turing complete language lets you write a program whose data is taken logic and data.

      1. 3

        Lisp puts more emphasis on symbolic computation (concise expressions of lists and symbols) than the historical alternatives (FORTRAN, C, Pascal).