C311 Assignment 10 -- CPS

Due Monday, April 10th, at 8:55 AM

Read EOPL Chapter 8.

Submit via email

  1. Exercise 8.5.4.
  2. CPS transform the following procedures:
    (define harmonic-sum
      (lambda (n)
        (cond
          ((zero? n) 0)
          (else (+ (/ 1 n) (harmonic-sum (- n 1)))))))
    
    
    (define f
      (lambda (l)
        (cond
          ((null? l) 0)
          ((g l) (+ 1 (f (car l))))
          (else (+ (f (car l)) (f (cdr ls)))))))
    
    
    (define mystery
      (lambda (n)
        (letrec
          ((mystery-helper
    	 (lambda (n s)
    	   (cond
    	     ((zero? n) (list s))
    	     (else
    	       (append
    		 (mystery-helper (sub1 n) (cons 0 s))
    		 (mystery-helper (sub1 n) (cons 1 s))))))))
          (mystery-helper n '()))))
    
    
    (define deep-recur
      (lambda (seed item-proc list-proc)
        (letrec
          ((helper
    	 (lambda (ls)
    	   (if (null? ls)
    		 seed
    		 (let ((a (car ls)))
    		   (if (or (pair? a) (null? a))
    		     (list-proc (helper a) (helper (cdr ls)))
    		     (item-proc a (helper (cdr ls)))))))))
          helper)))
    
    
chaynes@indiana.edu