#lang racket (require "stream-base.rkt") ; implicit streams - defined as a least fixed-point, that is the ; smallest set satisfying the equations. ; the stream of 1 1 1 1 1 ... (define ones (s-cons 1 ones)) ; try ; (print ones) ; (s-ref ones 100) ; (print ones) ; add the two streams offset by 1 position and you get fibonacci (define fibs-imp (s-cons 0 (s-cons 1 (s-map + (s-rest fibs-imp) fibs-imp)))) ; try ; (print fibs-imp) ; (s-ref fibs-imp 3) ; (print fibs-imp)