Search icon CANCEL
Subscription
0
Cart icon
Your Cart (0 item)
Close icon
You have no products in your basket yet
Save more on your purchases! discount-offer-chevron-icon
Savings automatically calculated. No voucher code required.
Arrow left icon
All Products
Best Sellers
New Releases
Books
Videos
Audiobooks
Learning Hub
Newsletter Hub
Free Learning
Arrow right icon
timer SALE ENDS IN
0 Days
:
00 Hours
:
00 Minutes
:
00 Seconds
Arrow up icon
GO TO TOP
Haskell Design Patterns

You're reading from   Haskell Design Patterns Take your Haskell and functional programming skills to the next level by exploring new idioms and design patterns

Arrow left icon
Product type Paperback
Published in Nov 2015
Publisher
ISBN-13 9781783988723
Length 166 pages
Edition 1st Edition
Languages
Arrow right icon
Author (1):
Arrow left icon
 Lemmer Lemmer
Author Profile Icon Lemmer
Lemmer
Arrow right icon
View More author details
Toc

Iteratee I/O


Why Functional Programming Matters [REF 1990, John Hughes] has been described as the manifesto for lazy programming, written at a time when enthusiasm for this style was running very high. Less than 20 years later, Oleg Kiselyov published the obituary of Lazy I/O in a series of writings; for more information, visit http://okmij.org/ftp/Streams.html.

In the late 2000s, Kiselyov championed a new way of doing I/O that combines the best of Handle-based I/O (precise control over resources and predictable space requirements) with the best of lazy I/O (decoupling of producers and consumers, high level of abstraction).

Let's get to the root of this style of programming by rephrasing the example we saw earlier. Recall the Chunk data type and the parseChunk function:

data Chunk = Chunk {chunk :: String}
                    | LineEnd {chunk :: String,
                               remainder :: String}

  deriving Show
parseChunk :: ByteString -> Chunk
parseChunk chunk
 = if rightS =...
lock icon The rest of the chapter is locked
Register for a free Packt account to unlock a world of extra content!
A free Packt account unlocks extra newsletters, articles, discounted offers, and much more. Start advancing your knowledge today.
Unlock this book and the full library FREE for 7 days
Get unlimited access to 7000+ expert-authored eBooks and videos courses covering every tech area you can think of
Renews at $15.99/month. Cancel anytime
Visually different images