Quiz13
This quiz is due Friday, October 19, 2012 at 10:00AM EST.
Sign in to Google to save your progress. Learn more
Enter your course PIN: *
Consider the following Python programs:
Program 1:

def f():
  n = 0
  while n >= 0:
    yield n
    n += 1

g = f()
g.next()
g.next()


Program 2:

def h(g, n):
  g(n)

def f():
  n = 0
  while n >= 0:
    h((lambda v: yield v), n)
    n += 1

g = f()
g.next()
g.next()


Program  3:

def f():
  def yielder(n):
    yield n
  n = 0
  while n >= 0:
    yielder(n)
    n += 1

g = f()
g.next()
g.next()


Q1: What is the result of program 1? *
Q2: What is the result of program 2? *
Q3: What is the result of program 3? *
Consider the following Racket programs:
Program A:

#lang racket

(require racket/generator)

(define (f)
  (generator
   ()
   (let ((n 0))
     (let loop ()
       (when (>= n 0)
         (yield n)
         (set! n (add1 n))
         (loop))))))

(define g (f))
(g)
(g)


Program B:

#lang racket

(require racket/generator)

(define (h g v)
  (g v))

(define (f)
  (generator
   ()
   (let ((n 0))
     (let loop ()
       (when (>= n 0)
         (h (lambda (v) (yield v)) n)
         (set! n (add1 n))
         (loop))))))

(define g (f))
(g)
(g)


Program C:

#lang racket

(require racket/generator)

(define (h g v)
  (g v))

(define (f)
  (generator
   ()
   (define (yielder v)
     (yield v))
   (let ((n 0))
     (let loop ()
       (when (>= n 0)
         (yielder n)
         (set! n (add1 n))
         (loop))))))

(define g (f))
(g)
(g)

Q4: What is the result of program A? *
Q5: What is the result of program B? *
Q6: What is the result of program C? *
Submit
Clear form
Never submit passwords through Google Forms.
This content is neither created nor endorsed by Google. Report Abuse - Terms of Service - Privacy Policy