A Mercury programozási nyelv

Beépített operátorok

A következtő táblázat tartalmazza a Mercury beépített operátorait. Az alacsonyabb prioritású operátorok "jobban kötnek". Például a 2 * X + Y termben a + operátor prioritása 500, a * operátoré 400, vagyis a term (2 * X) + Y formában értékelődik ki.

A "Pontos alak" mező jelzi, hogy az operátorral konstruált termek milyen alakot vehetnek fel. "f" jelöli az operátort, "x" és "y" jelöli az argumentumokat. "x" azt az argumentumot jelöli, melynek prioritása szigorúan kisebb, mint az adott operátoré. "y" azt az argumentumot jelenti, melynek prioritása kisebb, vagy egyenlő mint az adott operátoré. Például az "yfx" jelölés egy balasszociatív infix operátort jelöl, míg az "xfy" egy jobbasszociatív infix operátort.

Operátor Pontos alak Prioritás
. yfx 10
@ xfx 50
^ xfy 99
^ fx 100
`op` yfx 120
** xfy 200
- fx 200
\ fx 200
* yfx 400
// yfx 400
/ yfx 400
<< yfx 400
>> yfx 400
div yfx 400
mod xfx 400
rem xfx 400
++ xfy 500
+ yfx 500
+ fx 500
-- yfx 500
- yfx 500
/\ yfx 500
\/ yfx 500
aditi_bottom_up fx 500
aditi_top_down fx 500
.. xfx 550
: yfx 600
:= xfx 650
=^ xfx 650
< xfx 700
=.. xfx 700
=:= xfx 700
=< xfx 700
== xfx 700
=\= xfx 700
= xfx 700
>= xfx 700
> xfx 700
@< xfx 700
@=< xfx 700
@>= xfx 700
@> xfx 700
\== xfx 700
\= xfx 700
~= xfx 700
is xfx 701
and xfy 720
or xfy 740
func fx 800
impure fy 800
pred fx 800
semipure fy 800
\+ fy 900
not fy 900
when xfx 900
~ fy 900
<=> xfy 920
<= xfy 920
=> xfy 920
all fxy 950
lambda fxy 950
some fxy 950
, xfy 1000
& xfy 1025
-> xfy 1050
; xfy 1100
then xfx 1150
if fx 1160
else xfy 1170
:: xfx 1175
==> xfx 1175
where xfx 1175
---> xfy 1179
type fx 1180
end_module fx 1199
import_module fx 1199
include_module fx 1199
instance fx 1199
inst fx 1199
mode fx 1199
module fx 1199
pragma fx 1199
promise fx 1199
rule fx 1199
typeclass fx 1199
use_module fx 1199
--> xfx 1200
:- xfx 1200
:- fx 1200
?- fx 1200