ACM Computing Surveys (CSUR)
An introduction to functional programming
An introduction to functional programming
Unboxed values as first class citizens in a non-strict functional language
Proceedings of the 5th ACM conference on Functional programming languages and computer architecture
Imperative functional programming
POPL '93 Proceedings of the 20th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Highlights from nhc—a space-efficient Haskell compiler
FPCA '95 Proceedings of the seventh international conference on Functional programming languages and computer architecture
Haskell: the craft of functional programming
Haskell: the craft of functional programming
Automatic management of operating-system resources
ICFP '97 Proceedings of the second ACM SIGPLAN international conference on Functional programming
PolyP—a polytypic programming language extension
Proceedings of the 24th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
ACM Computing Surveys (CSUR)
Tracing Lazy Functional Computations Using Redex Trails
PLILP '97 Proceedings of the9th International Symposium on Programming Languages: Implementations, Logics, and Programs: Including a Special Trach on Declarative Programming Languages in Education
Heap Profiling for Space Efficiency
Advanced Functional Programming, Second International School-Tutorial Text
IFL '96 Selected Papers from the 8th International Workshop on Implementation of Functional Languages
The dynamic compilation of lazy functional programs
Journal of Functional Programming
Data Mining the Yeast Genome in a Lazy Functional Language
PADL '03 Proceedings of the 5th International Symposium on Practical Aspects of Declarative Languages
Computer Aided Systems Theory - EUROCAST 2001-Revised Papers
Dynamic applications from the ground up
Proceedings of the 2005 ACM SIGPLAN workshop on Haskell
Efficient manipulation of binary data using pattern matching
Journal of Functional Programming
A history of Haskell: being lazy with class
Proceedings of the third ACM SIGPLAN conference on History of programming languages
Hi-index | 0.00 |
For the programmer, storage media are usually assumed to have a minimum atomic unit of transfer of one byte. However, sometimes it is useful to have an even finer storage granularity of one bit, for instance in order to compress data.This paper describes an API in the lazy functional language Haskell for treating storage media as arbitrary-length streams of bits without byte-alignment constraints. So far as possible, storage media are treated uniformly. In particular, bit-stream memory and binary files share the same API -- a new and useful abstraction over memory management and file management. This uniformity of access leads to a novel technique for lazy random-access to files in a purely functional manner. We also describe a technique for automatically deriving compressed binary representations of user-defined data structures, whose operations provide both in-heap data compression and convenient high-level binary I/O.Of many possible applications, we illustrate the processing of Huffman-encoded image data, and a bibliographic information system which uses lazy B-trees for efficient storage management.