Module ValueSequence

This library defines a data structure for sequence of values. It is used in search trees (module SearchTree) as well as in set functions (module SetFunctions). Using sequence of values (rather than standard lists of values) is necessary to get the behavior of set functions w.r.t. finite failures right, as described in the paper

J. Christiansen, M. Hanus, F. Reck, D. Seidel: A Semantics for Weakly Encapsulated Search in Functional Logic Programs Proc. 15th International Conference on Principles and Practice of Declarative Programming (PPDP'13), pp. 49-60, ACM Press, 2013

Author: Fabian Reck

Version: July 2013

Summary of exported operations:

emptyVS :: ValueSequence a   
An empty sequence of values.
addVS :: a -> ValueSequence a -> ValueSequence a   
Adds a value to a sequence of values.
failVS :: Int -> ValueSequence a   
Adds a failure to a sequence of values.
(|++|) :: ValueSequence a -> ValueSequence a -> ValueSequence a   
Concatenates two sequences of values.
vsToList :: ValueSequence a -> [a]   
Transforms a sequence of values into a list of values.

Exported datatypes:


ValueSequence

A value sequence is an abstract sequence of values. It also contains failure elements in order to implement the semantics of set functions w.r.t. failures in the intended manner.

Constructors:


Exported operations:

emptyVS :: ValueSequence a   

An empty sequence of values.

Further infos:
  • externally defined

addVS :: a -> ValueSequence a -> ValueSequence a   

Adds a value to a sequence of values.

Further infos:
  • externally defined

failVS :: Int -> ValueSequence a   

Adds a failure to a sequence of values. The argument is the encapsulation level of the failure.

Further infos:
  • externally defined

(|++|) :: ValueSequence a -> ValueSequence a -> ValueSequence a   

Concatenates two sequences of values.

Further infos:
  • externally defined

vsToList :: ValueSequence a -> [a]   

Transforms a sequence of values into a list of values.

Further infos:
  • externally defined