Mercury (programming language): Difference between revisions

Content deleted Content added
Update release version
m Remove extra parens
Line 56:
|url=https://mercurylang.org/documentation/papers/CW2004_03_mazur.pdf
|title=Compile-time garbage collection for the declarative language Mercury
|first=Nancy |last=Mazur |date=May 2004 |publisher=Katholieke Universiteit Leuven}}</ref> but it can make certain programming constructs (such as a switch over a number of options, with a default{{Dubious|Examples_of_difficulties_introduced_by_declarativeness.3F|date=February 2009}}) harder to express. (While Mercury does allow impure functionality, thisit serves mainly as a way to call foreign language code. All impure code must be marked explicitly marked.) Operations which would typically be impure (such as [[input/output]]) are expressed using pure constructs in Mercury using [[Linear type system|linear types]], by threading a dummy ''world'' value through all relevant code.
 
Notable programs written in Mercury include the Mercury compiler and the [[Prince XML]] formatter. The Software company ODASE has also been using Mercury to develop its Ontology-Centric software development platform, ODASE.<ref>[https://www.odase.io/ ODASE]</ref>