DropsBrowse Pastes
Login with GitHub

生产者–消费者 call/cc?

April 11th, 2025Views: 17(0 unique)Scheme
(define producer #f)

(define (produce)
  (let loop ((i 0))
    (call/cc (lambda (k)
      (define item (string-append "item-" (number->string i)))
      (display "Producing ") (display item) (newline)
      (set! producer k)
      (consume item)))
    (loop (1+ i))))

(define (consume item)
  (display "Consuming ") (display item) (newline)
  (sleep 1)
  (producer))

(produce)