Mercury (programovací jazyk)

Mercury je programovací jazyk, podporující logické a funkcionální programování.

Popis jazyka

Mercury je deklarativní programovací jazyk. Funkce ani prediktáty nemohou mít žádné boční efekty. Operace, které obvykle mívají boční efekty, například výpis na obrazovku, přijímají jako parametr "stav světa" a vrací nový (ten starý zničí).

Prediktáty musí mít určené, jestli uspějí. Mohou být deterministické (det)-vždy najde právě jedno řešení, semideterministické (semidet)-vždy najde nejvýše jedno řešení, multi-vždy najde alespoň jedno řešení a nedeterministické (nondet)-není dáno, kolik najde řešení, a zda vůbec nějaké najde.

Příklady

Hello world

:- module hello.
:- interface.
:- import_module io.
:- pred main(io::di, io::uo) is det.

:- implementation.
main(!IO) :-
	io.write_string("Hello, World!\n", !IO).