posledná verzia (v3), nepodporuje bohužiaľ constraints. Tie sú na pláne v najbližších verziách (v závislosti od priorít čo ľudia chcú nášho voľného času).
Je však možné to obísť nasledujúcou funkciou:
fn Zlava(): Predajca
{
# vsetci predajcovia po zlave
zlava := predajcovia extend(novaCena = cena * 0.5, stav = 1)
project(meno, titul, novaCena, stav)
rename(cena = novaCena);
# mnozina chybnych zaznamov
chybne := zlava select(cena < 10.0);
# premenna ok je prazdna ak existuje aspon jeden chybny zaznam
ok := zlava * (zlava project(meno, stav) - chybne project(stav));
# novy obsah predajcov je bud povodny obsah predajcov alebo premenna zlava
predajcovia = predajcovia - zlava project(titul) +
zlava project(meno, titul, cena);
return chybne;
}
ak by boli constrainty implementovane tak v podstate by sa funkcia zmenila na jedno priradenie, ktore by skontrolovalo contraint. Ale to je blizka buducnost :)