On this page:
zthomae’s SICP solutions

zthomae’s SICP solutions

These are my solutions to the exercises in the Structure and Interpretation of Computer Programs written with Scribble. Occasionally I make progress on these.

These solutions are not complete: I have not reached the end of the book, nor have I done every exercise I’ve seen so far. I intend to finish them all at some point, but during my first pass through the book, I can and will skip some.

Since I’m doing these for personal enlightenment, I reserve the right to do something other than what the exercise specifically asks for if I think I would learn more by doing so.

The repository is located at https://github.com/zthomae/sicp.

    1 Chapter 1

      1.1 Exercise 1.1

      1.2 Exercise 1.2

      1.3 Exercise 1.3

      1.4 Exercise 1.4

      1.5 Exercise 1.5

      1.6 Exercise 1.6

      1.7 Exercise 1.7

      1.8 Exercise 1.8

      1.9 Exercise 1.9

      1.10 Exercise 1.10

      1.11 Exercise 1.11

      1.12 Exercise 1.12

      1.13 Exercise 1.13

      1.14 Exercise 1.14

      1.15 Exercise 1.15

      1.16 Exercise 1.16

      1.17 Exercise 1.17

      1.18 Exercise 1.18

      1.19 Exercise 1.19

      1.20 Exercise 1.20

      1.21 Exercise 1.21

      1.22 Exercise 1.22

      1.23 Exercise 1.23

      1.24 Exercise 1.24

      1.25 Exercise 1.25

      1.26 Exercise 1.26

      1.27 Exercise 1.27

      1.28 Exercise 1.28

      1.29 Exercise 1.29

      1.30 Exercise 1.30

      1.31 Exercise 1.31

      1.32 Exercise 1.32

      1.33 Exercise 1.33

      1.34 Exercise 1.34

      1.35 Exercise 1.35

      1.36 Exercise 1.36

      1.37 Exercise 1.37

      1.38 Exercise 1.38

      1.39 Exercise 1.39

      1.40 Exercise 1.40

      1.41 Exercise 1.41

      1.42 Exercise 1.42

      1.43 Exercise 1.43

      1.44 Exercise 1.44

      1.45 Exercise 1.45

      1.46 Exercise 1.46

    2 Chapter 2

      2.1 Exercise 2.1

      2.2 Exercise 2.2

      2.3 Exercise 2.3

      2.4 Exercise 2.4

      2.5 Exercise 2.5

      2.6 Exercise 2.6

      2.7 Exercise 2.7

      2.8 Exercise 2.8

      2.9 Exercise 2.9

      2.10 Exercise 2.10

      2.11 Exercise 2.11

      2.12 Exercise 2.12

      2.13 Exercise 2.13

      2.14 Exercise 2.14

      2.15 Exercise 2.15

      2.16 Exercise 2.16

      2.17 Exercise 2.17

      2.18 Exercise 2.18

      2.19 Exercise 2.19

      2.20 Exercise 2.20

      2.21 Exercise 2.21

      2.22 Exercise 2.22

      2.23 Exercise 2.23

      2.24 Exercise 2.24

      2.25 Exercise 2.25

      2.26 Exercise 2.26

      2.27 Exercise 2.27

      2.28 Exercise 2.28

      2.29 Exercise 2.29

      2.30 Exercise 2.30

      2.31 Exercise 2.31

      2.32 Exercise 2.32

      2.33 Exercise 2.33

      2.34 Exercise 2.34

      2.35 Exercise 2.35

      2.36 Exercise 2.36

      2.37 Exercise 2.37

      2.38 Exercise 2.38

      2.39 Exercise 2.39

      2.40 Exercise 2.40

      2.41 Exercise 2.41

      2.42 Exercise 2.42

      2.43 Exercise 2.43

      2.44 Exercise 2.44

      2.45 Exercise 2.45

      2.46 Exercise 2.46

      2.47 Exercise 2.47

      2.48 Exercise 2.48

      2.49 Exercise 2.49

      2.50 Exercise 2.50

      2.51 Exercise 2.51

      2.52 Exercise 2.52

      2.53 Exercise 2.53

      2.54 Exercise 2.54

      2.55 Exercise 2.55

      2.56 Exercise 2.56

      2.57 Exercise 2.57

      2.58 Exercise 2.58

      2.59 Exercise 2.59

      2.60 Exercise 2.60

      2.61 Exercise 2.61

      2.62 Exercise 2.62

      2.63 Exercise 2.63

      2.64 Exercise 2.64

      2.65 Exercise 2.65

      2.66 Exercise 2.66

      2.67 Exercise 2.67

      2.68 Exercise 2.68

      2.69 Exercise 2.69

      2.70 Exercise 2.70

      2.71 Exercise 2.71

      2.72 Exercise 2.72

      2.73 Exercise 2.73

      2.74 Exercise 2.74

      2.75 Exercise 2.75

      2.76 Exercise 2.76

      2.77 Exercise 2.77

      2.78 Exercise 2.78

      2.79 Exercise 2.79

      2.80 Exercise 2.80

      2.81 Exercise 2.81

      2.82 Exercise 2.82

      2.83 Exercise 2.83

      2.84 Exercise 2.84

      2.85 Exercise 2.85

      2.86 Exercise 2.86

      2.87 Exercise 2.87

      2.88 Exercise 2.88

      2.89 Exercise 2.89

      2.90 Exercise 2.90

      2.91 Exercise 2.91

      2.92 Exercise 2.92

      2.93 Exercise 2.93

      2.94 Exercise 2.94

      2.95 Exercise 2.95

      2.96 Exercise 2.96

      2.97 Exercise 2.97

    3 Chapter 3

      3.1 Exercise 3.1

      3.2 Exercise 3.2

      3.3 Exercise 3.3

      3.4 Exercise 3.4

      3.5 Exercise 3.5

      3.6 Exercise 3.6

      3.7 Exercise 3.7

      3.8 Exercise 3.8

      3.9 Exercise 3.9

      3.10 Exercise 3.10

      3.11 Exercise 3.11

      3.12 Exercise 3.12

      3.13 Exercise 3.13

      3.14 Exercise 3.14

      3.15 Exercise 3.15

      3.16 Exercise 3.16

      3.17 Exercise 3.17

      3.18 Exercise 3.18

      3.19 Exercise 3.19

      3.20 Exercise 3.20

      3.21 Exercise 3.21

      3.22 Exercise 3.22

      3.23 Exercise 3.23

      3.24 Exercise 3.24

      3.25 Exercise 3.25

      3.26 Exercise 3.26

      3.27 Exercise 3.27

      3.28 Exercise 3.28

      3.29 Exercise 3.29

      3.30 Exercise 3.30

      3.31 Exercise 3.31

      3.32 Exercise 3.32

      3.33 Exercise 3.33

      3.34 Exercise 3.34

      3.35 Exercise 3.35

      3.36 Exercise 3.36

      3.37 Exercise 3.37

      3.38 Exercise 3.38

      3.39 Exercise 3.39

      3.40 Exercise 3.40

      3.41 Exercise 3.41

      3.42 Exercise 3.42

      3.43 Exercise 3.43

      3.44 Exercise 3.44

      3.45 Exercise 3.45

      3.46 Exercise 3.46

      3.47 Exercise 3.47

      3.48 Exercise 3.48

      3.49 Exercise 3.49

      3.50 Exercise 3.50

      3.51 Exercise 3.51

      3.52 Exercise 3.52

      3.53 Exercise 3.53

      3.54 Exercise 3.54

      3.55 Exercise 3.55

      3.56 Exercise 3.56

      3.57 Exercise 3.57

      3.58 Exercise 3.58

      3.59 Exercise 3.59

      3.60 Exercise 3.60

      3.61 Exercise 3.61

      3.62 Exercise 3.62

      3.63 Exercise 3.63

      3.64 Exercise 3.64

      3.65 Exercise 3.65

      3.66 Exercise 3.66

      3.67 Exercise 3.67

      3.68 Exercise 3.68

      3.69 Exercise 3.69

      3.70 Exercise 3.70

      3.71 Exercise 3.71

      3.72 Exercise 3.72

      3.73 Exercise 3.73

      3.74 Exercise 3.74

      3.75 Exercise 3.75

      3.76 Exercise 3.76

      3.77 Exercise 3.77

      3.78 Exercise 3.78

      3.79 Exercise 3.79

      3.80 Exercise 3.80

      3.81 Exercise 3.81

      3.82 Exercise 3.82

    4 Chapter 4

      4.1 Exercise 4.1

      4.2 Exercise 4.2

      4.3 Exercise 4.3

      4.4 Exercise 4.4

      4.5 Exercise 4.5

      4.6 Exercise 4.6

      4.7 Exercise 4.7

      4.8 Exercise 4.8

      4.9 Exercise 4.9

      4.10 Exercise 4.10

      4.11 Exercise 4.11

      4.12 Exercise 4.12

      4.13 Exercise 4.13

      4.14 Exercise 4.14

      4.15 Exercise 4.15

      4.16 Exercise 4.16

      4.17 Exercise 4.17

      4.18 Exercise 4.18

      4.19 Exercise 4.19

      4.20 Exercise 4.20

      4.21 Exercise 4.21

      4.22 Exercise 4.22

      4.23 Exercise 4.23

      4.24 Exercise 4.24

      4.25 Exercise 4.25

      4.26 Exercise 4.26

      4.27 Exercise 4.27

      4.28 Exercise 4.28

      4.29 Exercise 4.29

      4.30 Exercise 4.30

      4.31 Exercise 4.31

      4.32 Exercise 4.32

      4.33 Exercise 4.33

      4.34 Exercise 4.34

      4.35 Exercise 4.35

      4.36 Exercise 4.36

      4.37 Exercise 4.37

      4.38 Exercise 4.38

      4.39 Exercise 4.39

      4.40 Exercise 4.40

      4.41 Exercise 4.41

      4.42 Exercise 4.42

      4.43 Exercise 4.43

      4.44 Exercise 4.44

      4.45 Exercise 4.45

      4.46 Exercise 4.46

      4.47 Exercise 4.47

      4.48 Exercise 4.48

      4.49 Exercise 4.49

      4.50 Exercise 4.50

      4.51 Exercise 4.51

      4.52 Exercise 4.52

      4.53 Exercise 4.53

      4.54 Exercise 4.54

      4.55 Exercise 4.55

      4.56 Exercise 4.56

      4.57 Exercise 4.57

      4.58 Exercise 4.58

      4.59 Exercise 4.59

      4.60 Exercise 4.60

      4.61 Exercise 4.61

      4.62 Exercise 4.62

      4.63 Exercise 4.63

      4.64 Exercise 4.64

      4.65 Exercise 4.65

      4.66 Exercise 4.66

      4.67 Exercise 4.67

      4.68 Exercise 4.68

      4.69 Exercise 4.69

      4.70 Exercise 4.70

      4.71 Exercise 4.71

    5 Chapter 5

      5.1 Note on diagrams

      5.2 Exercise 5.2

      5.3 Exercise 5.3

      5.4 Exercise 5.4

      5.5 Exercise 5.5

        5.5.1 Factorial machine

        5.5.2 Fibonacci machine

      5.6 Exercise 5.6

      5.7 Exercise 5.7

      5.8 Exercise 5.8

      5.9 Exercise 5.9

      5.10 Exercise 5.10

      5.11 Exercise 5.11

      5.12 Exercise 5.12

      5.13 Exercise 5.13

      5.14 Exercise 5.14

      5.15 Exercise 5.15

      5.16 Exercise 5.16

      5.17 Exercise 5.17

      5.18 Exercise 5.18

      5.19 Exercise 5.19

      5.20 Exercise 5.20

      5.21 Exercise 5.21

      5.22 Exercise 5.22

      5.23 Exercise 5.23

      5.24 Exercise 5.24