UNB/ CS/ David Bremner/ teaching/ cs4613/ lectures/ lecture5/ streams.rkt
#lang racket/base
(require racket/stream)

(define ones (stream-cons 1 ones))
(stream->list (stream-take ones 15))

(define (stream-add s1 s2)
  (for/stream ([a s1] [b s2]) (+ a b)))

(define twos (stream-add ones ones))
(stream->list (stream-take twos 15))

(define fibs (stream-cons 1
                (stream-cons 1
                  (stream-add fibs
                              (stream-rest fibs)))))
(stream->list (stream-take fibs 15))