Accepted for ICFP 2007.
|
This paper presents an automatic fusion system, stream fusion,
based on equational transformations, that fuses a wider range of
functions than existing short-cut fusion systems. In particular, stream
fusion is able to fuse zips, left folds and functions over nested lists,
including list comprehensions. A distinguishing feature of the stream
fusion framework is its simplicity: by transforming list functions to
expose their structure, intermediate values are eliminated by general
purpose compiler optimisations.
|
The full text of the paper can be downloaded: (ps.gz ,pdf)
The source code for the Data.Stream library, and examples used in the paper, can be downloaded from the project website.
@inproceedings{CLS07,
author = {Duncan Coutts and Roman Leshchinskiy and Don Stewart},
title = {Stream Fusion: From Lists to Streams to Nothing at All},
booktitle = {Proceedings of the ACM SIGPLAN International Conference on Functional Programming, ICFP 2007},
year = 2007,
month = apr,
note = "To appear"
}