Mercury (programming language): Difference between revisions

Content deleted Content added
No edit summary
mNo edit summary
Line 1:
'''Mercury''' is a [[Functional programming|functional]] [[logic programming|logic]] [[programming language]] based on [[Prolog]], but more geared towards practical applications.
 
Mercury has several features intended for better [[software engineering]] than is possible with Prolog. It is [[compiler|compiled]] rather than interpreted, as is traditional for logic programming languagueslanguages. It features a sophisticated, strict [[Data type|type]] and mode system. Its authors claim these features combined with logic programming's abstract nature speeds writing of reliable programs. Mercury's module system enables division into self-contained units, a problem for past logic programming languages. (But note that several existing Prolog implementations also include module systems.)
 
Mercury is a more "pure", and therefore more [[Declarative programming|declarative]], language than Prolog, since it does not have "extra-logical" Prolog features like the "cut" (a Prolog construct which prevents [[backtracking]]) and [[imperative programming|imperative]] [[I/O]]. This makes the coding of sequential algorithms somewhat more cumbersome, but it makes automated program [[Optimization (computer science)|optimization]] easier.