lazy.coffee
Version:
CoffeeScript Lazy Evaluation
20 lines (14 loc) • 355 B
text/coffeescript
{log} = require 'coffee-mate'
require './global'
plus = (a, b) -> a + b
fibs =
cons(0) cons(1) (zipWith(plus) (lazy -> do fibs), (drop(1) (lazy -> do fibs)))
circle = (ls) ->
lazy -> do
concat [ls, circle ls]
reps = (x) ->
lazy -> do
cons(x) reps(x)
log -> list take(10) circle [1, 2, 3]
log -> list take(10) reps(1)
log -> list take(10) fibs