Index
All Packages
All Categories
By Author

ap (3)
cp (3)
dp (3)
exe (3)
gui (0)
gui/gtk (0)
gui/tk (4)
io (1)
lib (11)
math (0)
net (9)
nlp (18)
op (4)
os (2)
program (3)
sp (2)
tool (9)
wp (2)
xml (2)

Select

type:package
id:mogul:/duchier/select
section:mogul:/duchier
version:1.8
blurb:implements the selection constraint e.g. S={Select.fs [S1 ... Sn] I}
author:Denys Duchier
category:cp
documentation:index.html
download:duchier-select__1.2.5__source__1.8.pkg
duchier-select__1.3.0__source__1.8.pkg
provides:x-ozlib://duchier/cp/Select.ozf
x-ozlib://duchier/cp/SelectFD.so
x-ozlib://duchier/cp/SelectFS.so
x-ozlib://duchier/cp/SelectUnion.so
x-ozlib://duchier/cp/SelectInter.so
x-ozlib://duchier/cp/SeqUnion.so
x-ozlib://duchier/cp/SelectThe.so
x-ozlib://duchier/cp/SeqSelect.so

Note: from now on, this module is only available as an ozmake package.

This module implements the selection constraints for finite domains and for finite sets.

the selection constraint S={Select.fs [S1 ... Sn] I} has the same declarative semantics as S={Nth [S1 ... Sn] I}, i.e. it unifies X with the Ith element of sequence [S1 ... Sn]. However, it is much more powerful because it is also a constraint. All of S, S1, ..., Sn, and I can be constrained variables. In particular:

As of version 1.3, the module also implements the selection union constraint {Select.union [S1 ... Sn] SI} which returns the union of the sets Si for i in SI.

As of version 1.5, the module also implements the selection intersection constraint {Select.inter [S1 ... Sn] SI} which returns the intersection of the sets Si for i in SI.

As of version 1.6, this package provides the sequenced union constraint {Select.seqUnion [S1 ... Sn] S} whereS is the union of the sets Si which are additionally constrained to be sequential, i.e. for i<j all elements of Si are smaller than elements of Sj.

Version 1.8 - added indexedUnion constraint {Select.indexedUnion [I1#S1 ... In#Sn] SI} which returns the union of the Sk for Ik in SI.