All pastes #187321 Raw Edit

Untitled

public text v1 · immutable
#187321 ·published 2006-09-30 23:55 UTC
rendered paste body
8.4.1
3. Evaluate the following expression step by step:
      (cond
        [(= 2 0) false]
        [(> 2 1)(symbol=? 'a 'a)]
        [else (= (/ 1 2) 9)])
 
  ==> (cond
        [false false]
        [(> 2 1)(symbol=? 'a 'a)]
        [else (= (/ 1 2) 9)])

  ==> (cond
        [(> 2 1)(symbol=? 'a 'a)]
        [else (= (/ 1 2) 9)])

  ==> (cond
        [true (symbol=? 'a 'a)]
        [else (= (/ 1 2) 9)])

  ==> (cond
        [(symbol=? 'a 'a)]
        [else (= (/ 1 2) 9)])

  ==> (cond
        [true]
        [else (= (/ 1 2) 9)])

  ==> All definitions successfully evaluated.

8.4.2
3. Evaluate the following expressions step by step:

   ;; f: number number -> number
   (define (f x y) (+ (* 3 x)(* y y)))

      (f (f 1 (* 2 3)) 19)

  ==> (f (f 1 6) 19)
  ==> (f (+ (* 3 1)(* 6 6)) 19)
  ==> (f (+ 3 (* 6 6)) 19)
  ==> (f (+ 3 36) 19)
  ==> (f 39 19)
  ==> (+ (* 3 39)(* 19 19))
  ==> (+ 117 361)
  ==> 478

  ==> All definitions successfully evaluated.

8.8.3
2. Evaluate the following expressions step by step:

   (define-struct ball (x y speed-x speed-y))

      (ball-speed-y (make-ball (+ 1 2)(+ 3 3) 2 3))
  ==> (ball-speed-y (make-ball 3 (+ 3 3) 2 3))
  ==> (ball-speed-y (make-ball 3 6 2 3))
  ==> 3

  ==> All definitions successfully evaluated.

Evaluate program completely in a step-by-step fashion:

(define n 6)
(define m 2)

(and (= n (* (+ 1 m) m))
     (not (= 0 (- n 6)))
     (= 10 (/ 2 (- m 2))))

  ==> (and (= 6 (* (+ 1 m) m))
           (not (= 0 (- n 6)))
           (= 10 (/ 2 (- m 2))))

  ==> (and (= 6 (* (+ 1 2) m))
           (not (= 0 (- n 6)))
           (= 10 (/ 2 (- m 2))))

  ==> (and (= 6 (* 3 m))
           (not (= 0 (- n 6)))
           (= 10 (/ 2 (- m 2))))

  ==> (and (= 6 (* 3 2))
           (not (= 0 (- n 6)))
           (= 10 (/ 2 (- m 2))))

  ==> (and (= 6 6)
           (not (= 0 (- n 6)))
           (= 10 (/ 2 (- m 2))))

  ==> (and (true)
           (not (= 0 (- n 6)))
           (= 10 (/ 2 (- m 2))))

  ==> (and (true)
           (not (= 0 (- 6 6)))
           (= 10 (/ 2 (- m 2))))

  ==> (and (true)
           (not (= 0 0))
           (= 10 (/ 2 (- m 2))))

  ==> (and (true)
           (not true)
           (= 10 (/ 2 (- m 2))))

  ==> (and (true)
           (false)
           (= 10 (/ 2 (- m 2))))

  ==> false