Rewriting Haskell Strings
Room: BBL room 471
Title: Rewriting Haskell Strings (*)
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 with lazy evaluation.
Equational transformations based on term rewriting are used to
deforest intermediate ByteStrings automatically. We describe novel
fusion combinators with improved expressivity and performance over
previous functional array fusion strategies. A library for
ByteStrings is implemented, providing a purely functional interface,
and approaches the speed of low-level mutable arrays in C.
Duncan Coutts (Programming Tools Group, Oxford University Computing Laboratory)
Don Stewart and Roman Leshchinskiy (Computer Science & Engineering, University of New South Wales)
Accepted for PADL 2007.