Stream fusion: From lists to streams to nothing at all
D Coutts, R Leshchinskiy, D Stewart - ACM SIGPLAN Notices, 2007 - dl.acm.org
This paper presents an automatic deforestation system, stream fusion, based on equational
transformations, that fuses a wider range of functions than existing short-cut fusion systems …
transformations, that fuses a wider range of functions than existing short-cut fusion systems …
Shortcut fusion for accumulating parameters & zip-like functions
J Svenningsson - ACM SIGPLAN Notices, 2002 - dl.acm.org
We present an alternative approach to shortcut fusion based on the function unfoldr,.
Despite its simplicity the technique can remove intermediate lists in examples which are …
Despite its simplicity the technique can remove intermediate lists in examples which are …
Lightweight fusion by fixed point promotion
This paper proposes a lightweight fusion method for general recursive function definitions.
Compared with existing proposals, our method has several significant practical features: it …
Compared with existing proposals, our method has several significant practical features: it …
Free theorems in the presence of seq
Parametric polymorphism constrains the behavior of pure functional programs in a way that
allows the derivation of interesting theorems about them solely from their types, ie, virtually …
allows the derivation of interesting theorems about them solely from their types, ie, virtually …
The impact of seq on free theorems-based program transformations
Parametric polymorphism constrains the behavior of pure functional programs in a way that
allows the derivation of interesting theorems about them solely from their types, ie, virtually …
allows the derivation of interesting theorems about them solely from their types, ie, virtually …
A generalization of short-cut fusion and its correctness proof
P Johann - Higher-order and symbolic computation, 2002 - Springer
Short-cut fusion is a program transformation technique that uses a single, local
transformation—called the foldr-build rule—to remove certain intermediate lists from …
transformation—called the foldr-build rule—to remove certain intermediate lists from …
Rewriting haskell strings
D Coutts, D Stewart, R Leshchinskiy - … 2007, Nice, France, January 14-15 …, 2007 - Springer
Abstract The Haskell String type is notoriously inefficient. We introduce a new data type,
ByteString, based on lazy lists of byte arrays, combining the speed benefits of strict arrays …
ByteString, based on lazy lists of byte arrays, combining the speed benefits of strict arrays …
An accumulative parallel skeleton for all
Parallel skeletons intend to encourage programmers to build a parallel program from ready-
made components for which efficient implementations are known to exist, making the …
made components for which efficient implementations are known to exist, making the …
Stream Fusion: Practical shortcut fusion for coinductive sequence types
D Coutts - 2011 - ora.ox.ac.uk
In functional programming it is common practice to build modular programs by composing
functions where the intermediate values are data structures such as lists or arrays. A …
functions where the intermediate values are data structures such as lists or arrays. A …
Short cut fusion is correct
P Johann - Journal of Functional Programming, 2003 - cambridge.org
Fusion is the process of removing intermediate data structures from modularly constructed
functional programs. Short cut fusion is a particular fusion technique which uses a single …
functional programs. Short cut fusion is a particular fusion technique which uses a single …