FPCA '93 Proceedings of the conference on Functional programming languages and computer architecture
Ropes: an alternative to strings
Software—Practice & Experience
QuickCheck: a lightweight tool for random testing of Haskell programs
ICFP '00 Proceedings of the fifth ACM SIGPLAN international conference on Functional programming
Shortcut fusion for accumulating parameters & zip-like functions
Proceedings of the seventh ACM SIGPLAN international conference on Functional programming
Finger trees: a simple general-purpose data structure
Journal of Functional Programming
Stream fusion: from lists to streams to nothing at all
ICFP '07 Proceedings of the 12th ACM SIGPLAN international conference on Functional programming
PADL'07 Proceedings of the 9th international conference on Practical Aspects of Declarative Languages
A library writer's guide to shortcut fusion
Proceedings of the 4th ACM symposium on Haskell
Adding structure to monoids: thus hopefully ending Haskell's string type confusion
Proceedings of the 2013 ACM SIGPLAN symposium on Haskell
Type-changing rewriting and semantics-preserving transformation
Proceedings of the ACM SIGPLAN 2014 Workshop on Partial Evaluation and Program Manipulation
Hi-index | 0.00 |
Prior papers have presented a fusion framework called stream fusion for removing intermediate data structures from both lists and arrays in Haskell. Stream fusion is unique in using an explicit datatype to accomplish fusion. We demonstrate how this can be exploited in the creation of a new Haskell string representation Text, which achieves better performance and data density than String. Text uses streams not only to accomplish fusion, but also as a way to abstract away from various underlying representations. This allows the same set of combinators to manipulate Unicode text that is stored in a variety of ways.