mirror of
https://github.com/Mercury-Language/mercury.git
synced 2026-05-01 17:24:34 +00:00
Estimated hours taken: 3 samples/tests/Mmakefile: The old version of this file had a bogus SUBDIRS list and a lot of code duplication with Mmake.common.samples. I rewrote it to use Mmake.common.samples. samples/tests/Mmake.common.samples: Add some documentation. Add some missing dependencies for the dep_local target. Automatically set the SUBDIRS variable to the correct value, rather than always setting it to empty. Fix a couple of other bugs (an `ifeq' should have been `ifneq' and in the condition of that test `$(SUBDIRS)' should have been `"$(SUBDIRS)"'). samples/tests/Mmake.common: samples/tests/generate_exp: Delete the code for making .exp files using NU-Prolog. samples/tests/c_interface/c_calls_mercury/Mmakefile: samples/tests/c_interface/cplusplus_calls_mercury/Mmakefile: Fix a bug: add some extra dependencies to ensure that it copies the right files before invoking mmc to make the dependencies.
This directory contains some example Mercury programs. hello.m "Hello World" in Mercury. cat.m An implementation of a simple version of the standard UNIX filter `cat', which just copies its input files or the standard input stream to the standard output stream. sort.m An implementation of a simple version of the standard UNIX filter `sort', which reads lines from its input files or the standard input stream, sorts them, and then writes the result to the standard output stream. calculator.m A simple four-function arithmetic calculator, with a parser written using the Definite Clause Grammar notation. committed_choice.m An example illustrating committed-choice nondeterminism in Mercury. interpreter.m An simple interpreter for definite logic programs. A demonstration of meta-programming in Mercury. expand_terms.m Another example meta-program, showing how to emulate Prolog's `expand_term' mechanism. e.m A small program which calculates the base of natural logarithms to however many digits you choose. It illustrates one way to achieve lazy evaluation in Mercury. Mmakefile The file used by `mmake', the Mercury Make program, to build the programs in this directory. The `solutions' sub-directory contains some examples of the use of nondeterminism, showing how a Mercury program can compute - one solution, - all solutions, or - some solutions (determined by a user-specified criteria) for a query which has more than one logically correct answer. There are also some sub-directories which contain examples of multi-module Mercury programs: diff This directory contains an implementation of a simple version of the standard UNIX utility `diff', which prints the differences between two files. c_interface This directory contains some examples of mixed Mercury/C/C++/Fortran programs using the C interface. rot13 This directory contains a few implementations of rot-13 encoding. muz This directory contains a syntax checker / type checker for the specification language Z.