This is my workbook and exercise solutions for the legendary SICP Book using the DrRacket Scheme interpeter
All the workbooks are divided by chapters one on each folder.
-
Chapter 1: Building Abstractions with Procedures
- : Exercise 1.1 Simple expressions
- : Exercise 1.2 Complex expression
- : Exercise 1.3 Sum of Squares
- : Exercise 1.4 Evaluate behavior
- : Exercise 1.5 Order of evaluation
- : Exercise 1.6 If predicate
- : Exercise 1.7 Good enough aproximation
- : Exercise 1.8 Newtons Method Sqrt
- : Exercise 1.9 Evaluate Substitution model
- : Exercise 1.10 Ackermann’s function
- : Exercise 1.11 Compute function using iteration
- : Exercise 1.12 Pascals Triangle
- : Exercise 1.13 Prove Fibonacci closest integer
- : Exercise 1.14 Draw illustrative process
- : Exercise 1.15 Find order of growth
- : Exercise 1.16 Fast iterative exponental calc
- : Exercise 1.17 Faster exponental calc
- : Exercise 1.18 Doubling of integers
- : Exercise 1.19 Faster Fibonacci
- : Exercise 1.20 Count GCD operations
- : Exercise 1.21 Find smallest divisor
- : Exercise 1.22 Time functions
- : Exercise 1.23 Time functions
- : Exercise 1.24 Time functions
- : Exercise 1.25 Order of growth changed
- : Exercise 1.26 Order of growth changed
- : Exercise 1.27 Prove Carmichael exist
- : Exercise 1.28 Miller-Rabin test
- : Exercise 1.29 Simpson’s Rule
- : Exercise 1.30 Find approximations to π
- : Exercise 1.31 Find approximations to π
- : Exercise 1.32 Construct accumulate function
- : Exercise 1.33 Construct filtered-accumulate function
- : Exercise 1.34 Evaluate recursive expression
- : Exercise 1.35 Show golden ratios fixed point
- : Exercise 1.36 Calculate fixed point of expression
- : Exercise 1.37 Infinite continued fraction
- : Exercise 1.38 Eulers approximation of e
- : Exercise 1.39 Lamberts approximation of tangent
- : Exercise 1.40 Newton's method using cubic func
- : Exercise 1.41 Double Double func
- : Exercise 1.42 Compose Func
- : Exercise 1.43 Repeated Func
- : Exercise 1.46 Iterative improvement Func
-
Chapter 2: Building Abstractions with Data
- : Exercise 2.1 Better version of make-rat
- : Exercise 2.2 Provide make-segment
- : Exercise 2.4 Cdr alternative
- : Exercise 2.5 Cons/Car/Cdr with exp numbers
- : Exercise 2.6 Church Numbers
- : Exercise 2.7 Interval Selectors
- : Exercise 2.8 Sub-interval
- : Exercise 2.9 Width
- : Exercise 2.10 Safe div-interval
- : Exercise 2.11 Mul interval fast
- : Exercise 2.12 Percent
- : Exercise 2.14 Invalid computations
- : Exercise 2.17 Last pair
- : Exercise 2.18 List reverse
- : Exercise 2.19 Locale Coins
- : Exercise 2.20 Same Parity
- : Exercise 2.21 Square-list
- : Exercise 2.22 Square-list issue
- : Exercise 2.23 for-each
- : Exercise 2.24 List tree evaluation
- : Exercise 2.25 Car/cdrs
- : Exercise 2.26 Evaluate list/append/cons
- : Exercise 2.28 deep-reverse
- : Exercise 2.29 total-weight of mobile tree
- : Exercise 2.30 square-map
- : Exercise 2.31 tree-map
- : Exercise 2.32 subsets
- : Exercise 2.33 map, length, append
- : Exercise 2.34 Horner
- : Exercise 2.35 count-leaves2
- : Exercise 2.36 Acuumulate-n
- : Exercise 2.37 Matrix ops
- : Exercise 2.38 Fold-left
- : Exercise 2.39 2 way reverse
- : Exercise 2.40 Unique pairs
- : Exercise 2.41 sum-triplets
- : Exercise 2.42 queens
- : Exercise 2.53 evaluating expressions
- : Exercise 2.54 Equal?
- : Exercise 2.55 quote
- : Exercise 2.56 Differential exponentiation
- : Exercise 2.58 Infix differential ops
- : Exercise 2.59 Union Set
- : Exercise 2.60 With duplicates Set
- : Exercise 2.61 Adjoin Ordered Set
- : Exercise 2.62 Union Ordered Set
- : Exercise 2.63 tree->list
- : Exercise 2.64 list->tree
- : Exercise 2.65 lookup in tree
- : Exercise 2.67 Decode sample
- : Exercise 2.68 Encode-symbol huffman
- : Exercise 2.69 Merge leaf pairs
- : Exercise 2.70 Encoding examples
- : Exercise 2.71 Huffman tree
- : Exercise 2.72 Huffman complexity
- : Exercise 2.75 Make from Mag Ang
- : Exercise 2.76 Find Appopriate ways to add new types
- : Exercise 2.77 Trace magnitude
- : Exercise 2.78 Do not tag buildin numbers
- : Exercise 2.79 Add equ?
- : Exercise 2.80 Add =zero?
-
Chapter 3: Modularity, Objects, and State
-
Chapter 4: Metalinguistic Abstraction
-
Chapter 5: Computing with Register Machines