Célnak nevezzük a következő formájú kifejezéseket:
Minden egzisztenciális kvantálás egy új érvényességi kört vezet be. Vars-ban szereplő változók lokálisak a Goal célban: minden Vars-ban szereplő változó, és ennek minden ugyanilyen nevű előfordulása a Goal-ban különböző változót jelöl minden olyan változótól, melynek ugyanez a neve, de az egzisztenciális kvantáláson kívül helyezkednek el.
A működést tekintve az egzisztenciális kvantálásnak nincs hatása, vagyis a változó érvényességi körére vonatkozó hatásától eltekintve a some Vars Goal
kifejezés megegyezik a Goal
kifejezéssel.
A Mercury implicit kvantálásra vonatkozó szabályai szerint a változók gyakran implicit egzisztenciálisan kvantálttá válnak. Általában az egzisztenciális kvantorok explicit kiírására nincs szükség.
not (some Vars not Goal)
kifejezésnek.
Goal1a -> Goal1b
alakú: diszjunkció. Goal1-nek és Goal2-nek érvényes célnak kell lennie.
if Goal then fail else true
kifejezéssel.
not (Goal1, not Goal2)
kifejezésnek.
not (Goal2, not Goal1)
kifejezésnek.
(Goal1 => Goal2), (Goal1 <= Goal2
) kifejezésnek.
A deklaratív szemantikában egy if-then-else ( CondGoal, ThenGoal ; not(CondGoal), ElseGoal )
formájú, műveleti szemantikában azonban más a helyzet, és a feldolgozása is különbözik a determinizmus céljainak következményei miatt. A működését tekintve először végrehajtódik a CondGoal, és ha ez sikeres, akkor vegrehajtás a ThenGoal-lal folytatódik; egyébként, vagyis ha a CondGoal sikertelen, az ElseGoal hajtódik végre. Vegyük észre, hogy a CondGoal lehet nemdeterminisztikus -- ellentétben a Prolog-gal, a Mercury az if-then-else kifejezéseiben nem szorítkozik csupán a feltétel első megoldására, ha a feltétel sikeres.
not (Term1 = Term2)
kifejezésnek.
call(Closure)
csupán meghívja a megadott függvényt. A többi kifejezésforma esetén a megadott argumentumokat a függvény argumentumlistájához fűzzük a függvény meghívása előtt. Lásd Magasabb rendű programozás.
call/N
szintaxist használó magasabbrendű hivás szemantikájávall
, vagyis a call(Var)
, call(Var, Arg1)
, stb. szemantikájával.
pred
deklarációban. Az argumentumoknak érvényes adat-termeknek kell lennie.