Developed at the University of Melbourne in 1995, Mercury is a functional logic programming language that was strongly influenced by Prolog.
Led by Zoltan Somogyi, the development team from the university's Computer Science Department included Thomas Conway and Fergus Henderson. Intended as an alternative to Prolog, the language was also influenced by Haskell, Hope, and the ML family of languages. Although the two languages have since diverged, the first versions of Mercury could be described as a subset of Prolog, but with strong types and models.
It has a similar syntax as Prolog, and the same basic concepts, such as the selective linear definite (SLD) clause resolution algorithm. Unlike the implementations of Prolog that were in use at the time, Mercury has a separate compilation phase rather than being directly interpreted. This allows for a wider range of errors to be detected before running a program. Mercury also features a strict static type and mode system, as well as a module system. By using the information obtained at compile-time, Mercury programs can perform faster than equivalent programs written in Prolog.
With several back-ends, Mercury code can be compiled into C, C#, Erlang, or Java. Mercury also includes a foreign language interface that allows code written in other languages to be linked with Mercury code.
The Mercury compiler was entirely written with Mercury.
The official implementation of the language is the Melbourne Mercury Compiler, which is available for Unix and Unix-like platforms, including Linux and macOS, as well as for Windows 32-bit.
The focus of this category is on the Mercury programming language. Resources related to the language itself, any of its implementations, compilers, IDEs, editors, or other tools designed to facilitate programming in Mercury are appropriate for this category, along with Mercury user groups, forums, guides, or tutorials.
 
 
Recommended Resources
GitHub: Mercury Programming Language
Mercury is a logic/functional programming language that was written as a replacement for Prolog. Available under the GNU General Public License, it is freely available through the official Mercury website, as well as from GitHub. The repository includes the Mercury logic programming system, the Mercury source distribution, packaging scripts, notes from meetings and discussions regarding ideas for the language, and other tools and documentation.
https://github.com/Mercury-Language
The official webpage for the programming language discusses its main features, the motivation for its development, benchmarks, back-ends, related languages, and a list of projects using the Mercury language. The compiler, tools, and source code may be downloaded from the site under the terms of the GNU General Public License. Documentation for the language is available in HTML and PDF format. Other resources include development notes, a bug tracker, and contacts.
http://www.mercurylang.org/
Prepared by J. Fondren, the site includes two central sections, Mercury Crash Course and MMC-Get Packages. The former serves as a cursory guide to the programming language, demonstrating how various functions work in the language, with an emphasis on humor. The Packages section of the site includes packages for the language that can be found through mmc-get. Packages, including unreviewed packages, are included, and others may add packages to the repository.
https://mercury-in.space/
Available from the SourceForge site under the GNU General Public License 2.0, GNU Library or Lesser General Public License 2.0, an earlier version of the Mercury programming language system includes a compiler, debugger, libraries, sample code, profilers, and other packages. General information about the language is given, project administrators are listed, and development notes are included, along with other free and open-source business software.
https://sourceforge.net/projects/mercury/