Okasaki introduced the canonical formulation of functional red-black trees when he gave a concise, elegant method of persistent element insertion. Persistent element deletion, on the other hand, has not enjoyed the same treatment. For this reason, many functional implementations simply omit persistent deletion. Those that include deletion typically take one of two approaches. The more-common approach is a superficial translation of the standard imperative algorithm. The resulting algorithm has functional airs but remains clumsy and verbose, characteristic of its imperative heritage. (Indeed, even the term insertion is a holdover from imperative origins, but is now established in functional contexts. Accordingly, we use the term deletion whi...
In functional programming, intermediate data structures are often used to “glue’) together small pro...
This article describes the application of functional programming techniques to a problem previously ...
Defunctionalization is a program transformation that aims to turn a higher-order functional program ...
Enter the computing arboretum and you will find a variety of well-studied trees: AVL trees, symmetri...
A fair amount has been written on the subject of reasoning about pointer algorithms. There was a pea...
Abstract. In the field of program transformation, one often transforms programs into continuation-pa...
Atomic-key B-trees are B-trees with keys of different sizes. This note presents two versions of an i...
AbstractLeaf trees provide simple and efficient implementations of abstract datatypes that are relat...
Program fragments in functional languages may be observationally congruent in a language without eff...
In the constructive programming community it is commonplace to see formal developments of textbook a...
An Insertion-Deletion system, first introduced in [1], is a theoretical computing model in the DNA c...
Split trees were designed for static data sets with skewed distributions, and therefore algorithms f...
We present a technique to prevent the construction of intermediate data structures in functional pro...
In 1972, Reynolds outlined a general method for eliminating functional arguments known as defunction...
In formal language theory, the operations of insertion and deletion are generalizations of the opera...
In functional programming, intermediate data structures are often used to “glue’) together small pro...
This article describes the application of functional programming techniques to a problem previously ...
Defunctionalization is a program transformation that aims to turn a higher-order functional program ...
Enter the computing arboretum and you will find a variety of well-studied trees: AVL trees, symmetri...
A fair amount has been written on the subject of reasoning about pointer algorithms. There was a pea...
Abstract. In the field of program transformation, one often transforms programs into continuation-pa...
Atomic-key B-trees are B-trees with keys of different sizes. This note presents two versions of an i...
AbstractLeaf trees provide simple and efficient implementations of abstract datatypes that are relat...
Program fragments in functional languages may be observationally congruent in a language without eff...
In the constructive programming community it is commonplace to see formal developments of textbook a...
An Insertion-Deletion system, first introduced in [1], is a theoretical computing model in the DNA c...
Split trees were designed for static data sets with skewed distributions, and therefore algorithms f...
We present a technique to prevent the construction of intermediate data structures in functional pro...
In 1972, Reynolds outlined a general method for eliminating functional arguments known as defunction...
In formal language theory, the operations of insertion and deletion are generalizations of the opera...
In functional programming, intermediate data structures are often used to “glue’) together small pro...
This article describes the application of functional programming techniques to a problem previously ...
Defunctionalization is a program transformation that aims to turn a higher-order functional program ...