The official implementation, the Melbourne Mercury Compiler, is available for most Unix and Unix-like platforms, including Linux, macOS, and for Windows.
It has the same syntax and the same basic concepts such as the selective linear definite clause resolution (SLD) algorithm.
[3][4] Its authors claim that Mercury is the fastest logic language in the world, by a wide margin.
While Mercury does allow impure functionality, it serves mainly as a way to call foreign language code.
Operations which would typically be impure (such as input/output) are expressed using pure constructs in Mercury using linear types, by threading a dummy world value through all relevant code.
Hello World: Calculating the 10th Fibonacci number (in the most obvious way):[7] !IO is a "state variable", which is syntactic sugar for a pair of variables which are assigned concrete names at compilation; for example, the above is desugared to something like: The stable release naming scheme was 0.1 up to 0.13 for the first thirteen stable releases.