Streams are a higher-level, more straightforward way to think about programs. Haskell is a decent high-level language (which /prog/ seems to have a fetish for), so here's an implementation of streams in Haskell.
delay e = (\ () -> e)
force e = e
streamHead e = head $ force e
streamTail e = tail $ force e
streamNull = delay []
makeStream f l = (f $ head l):(delay $ makeStream f (tail l))
Listen, dickplotter; you fuqin angered me, penis-juggler, I hava never been trolled and FUQIN ANGERED this hard in my life, cockgorger. Did you meet your dong quota today, wangspinner? I bet you didn't, faggot.
delay e () = e
force e = e ()
streamHead e = head $ force e
streamTail e = tail $ force e
streamNull = delay []
makeStream _ [] = streamNull
makeStream f (h:t) = delay (f h: makeStream f t)
?
Or just, you know, use regular lists. Haskell is lazy, after all.