UNB/ CS/ David Bremner/ teaching/ cs3383/ examples/ parfib.rkt
#lang racket/base
(require racket/future)
(require future-visualizer)

(define (p-fib n)
  (if (<= n 1) n
      (let ([x (future (lambda () (p-fib (- n 1))))]
	    [y (p-fib (- n 2))])
	(+ (touch x) y))))

(visualize-futures
  (p-fib 10))