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 with lazy evaluation. Equational transformations based on term rewriting are used to deforest intermediate ByteStrings automatically. We describe novel fusion combinators with improved expressiveness and performance over previous functional array fusion strategies. A library for ByteStrings is implemented, providing a purely functional interface, which approaches the speed of low-level mutable arrays in C
The Generic Haskell programming language allows functions to be defined by induction on the structur...
Existing approaches to array fusion can deal with straight-line pro-ducer consumer pipelines, but ca...
Abstract. Programs in languages such as Haskell are often datatype-centric and make extensive use of...
We present a generic Haskell library for expressing rewrite rules with a safe treatment of variables...
We introduce a handful of modules for manipulating Template Haskell datastructures, building up to m...
Functional programming languages such as Haskell are fundamentally different from imperative languag...
The aim of the FAST Project is to provide an implementation of a functional language, Haskell, on a ...
Functional programming languages such as Haskell are fundamentally different from imperative languag...
Recursive functions and data types pose significant chal-lenges for a Haskell-to-hardware compiler. ...
We present a novel approach to regular, multi-dimensional arrays in Haskell. The main highlights of ...
We present an algorithm for unrolling recursion in the Haskell functional language. Adapted from a s...
We present a novel approach to regular, multi-dimensional arrays in Haskell. The main highlights of ...
Abstract: This paper describes an efficient interpreter for lazy functional languages like Haskell a...
The Haskell programming language is an active laboratory for cutting edge ideas. Early in the evolut...
John Hughes [10] argues that the ability to decompose a problem into parts, depends upon the ability...
The Generic Haskell programming language allows functions to be defined by induction on the structur...
Existing approaches to array fusion can deal with straight-line pro-ducer consumer pipelines, but ca...
Abstract. Programs in languages such as Haskell are often datatype-centric and make extensive use of...
We present a generic Haskell library for expressing rewrite rules with a safe treatment of variables...
We introduce a handful of modules for manipulating Template Haskell datastructures, building up to m...
Functional programming languages such as Haskell are fundamentally different from imperative languag...
The aim of the FAST Project is to provide an implementation of a functional language, Haskell, on a ...
Functional programming languages such as Haskell are fundamentally different from imperative languag...
Recursive functions and data types pose significant chal-lenges for a Haskell-to-hardware compiler. ...
We present a novel approach to regular, multi-dimensional arrays in Haskell. The main highlights of ...
We present an algorithm for unrolling recursion in the Haskell functional language. Adapted from a s...
We present a novel approach to regular, multi-dimensional arrays in Haskell. The main highlights of ...
Abstract: This paper describes an efficient interpreter for lazy functional languages like Haskell a...
The Haskell programming language is an active laboratory for cutting edge ideas. Early in the evolut...
John Hughes [10] argues that the ability to decompose a problem into parts, depends upon the ability...
The Generic Haskell programming language allows functions to be defined by induction on the structur...
Existing approaches to array fusion can deal with straight-line pro-ducer consumer pipelines, but ca...
Abstract. Programs in languages such as Haskell are often datatype-centric and make extensive use of...