2011-11-21から1日間の記事一覧
last last :: IterV el (Maybe el) last = Cont (step Nothing) where step :: (Maybe el) -> (StreamG el -> IterV el (Maybe el)) step _ (El el) = Cont (step (Just el)) step prev Empty = Cont (step prev) step prev EOF = Done prev EOF
Divergent are iteratees which never become Done state, not even when it is receiving EOF. *Main> run $ enum diverge "abcadf" Nothingdiverge :: IterV el Int diverge = Cont step where step :: (StreamG el -> IterV el Int) step e = Cont stepru…
Let's perform the evaluation on head and drop. drop :: Int -> IterV el () drop 0 = Done () Empty drop n = Cont step where step (El _) = drop (n-1) step Empty = Cont step step EOF = Done () EOF head :: IterV el (Maybe el) head = Cont step w…