[m-dev.] for review: changes to the tutorial

David Glen JEFFERY dgj at cs.mu.OZ.AU
Thu Jul 15 18:05:52 AEST 1999

Hi Ralph,

Could you please review this? I suspect that my improvements might themselves
be improved...

Estimated hours taken: 1

A bunch of little clarifications that came up after a new user (Anthony
Senyard) went through the tutorial. Thanks Anthony.

	Write a condition as `X >= 7' rather than `7 =< X'.
	Refer explicitly to the binding of a particular variable rather
	than referring to `solutions' when explaining backtracking.
	Remove a rogue LIBSECio. It was causing a number to appear at the
	start of a line where it wasn't needed.
	Clarify that the integer *type* is built in, but the operations on
	integers aren't.
	Make the names of some variables consistent.
	Fix a typo.

cvs diff: Diffing .
Index: determinism-etc.m4
RCS file: /home/staff/zs/imp/tutorial/determinism-etc.m4,v
retrieving revision 1.1
diff -u -t -r1.1 determinism-etc.m4
--- determinism-etc.m4	1999/03/05 14:46:14	1.1
+++ determinism-etc.m4	1999/07/15 07:24:25
@@ -253,12 +253,13 @@
 into play.  Consider the following piece of code (TT(X) is assumed to
 be initially unbound):
-`       member(X, [1, 2, 4, 8, 16]), 7 =< X
+`       member(X, [1, 2, 4, 8, 16]), X >= 7
 What MERCURY does here is look for a solution to
-TT(`member(X, [1, 2, 4, 8, 16])') and then tries TT(`7 =< X').  If the
+TT(`member(X, [1, 2, 4, 8, 16])') and then tries TT(`X >= 7').  If the
 comparison fails, then execution EM(backtracks) to look for another
-solution to the call to TT(member/2).  If no solution can be found
+solution to the call to TT(member/2), binding TT(X) to another value.  
+If no binding for TT(X) can be found
 that allows the comparison to succeed then the whole clause fails.
 If MERCURY generates solutions to the first goal in the following
Index: hello-world.m4
RCS file: /home/staff/zs/imp/tutorial/hello-world.m4,v
retrieving revision 1.1
diff -u -t -r1.1 hello-world.m4
--- hello-world.m4	1999/03/05 14:46:15	1.1
+++ hello-world.m4	1999/07/15 06:51:09
@@ -39,7 +39,6 @@
 particular name, then it should be declared in the implementation
 section rather than the interface.
 This module uses names defined in the LIB(io) library module.  This is
 what the declaration
Index: sums-n-things.m4
RCS file: /home/staff/zs/imp/tutorial/sums-n-things.m4,v
retrieving revision 1.1
diff -u -t -r1.1 sums-n-things.m4
--- sums-n-things.m4	1999/03/05 14:46:21	1.1
+++ sums-n-things.m4	1999/07/15 06:58:24
@@ -5,7 +5,10 @@
 Next on the agenda is how to construct predicates and functions that
 calculate with numbers.  MERCURY is unusual in that you actually have
 to import the module that defines the basic integer operations,
-whereas in most languages they are built in.  There are good reasons
+whereas in most languages they are built in.  
+Although the integer type is built in, but the basic operations 
+that act upon them (eg. TT(+), TT(-)) are not.
+There are good reasons
 for this, but this tutorial is probably not the place to discuss them.
 So just trust us.
@@ -51,11 +54,11 @@
 This code is pretty straightforward.  One thing to be aware of is that
 you will often see
-`       ( if Condition then TrueCase else ElseCase )
+`       ( if Condition then ThenCase else ElseCase )
 written as
-`       ( Condition -> TrueCase ; FalseCase )
+`       ( Condition -> ThenCase ; ElseCase )
 This syntax is a throwback to MERCURY's ancestor, Prolog.
Index: types-n-things.m4
RCS file: /home/staff/zs/imp/tutorial/types-n-things.m4,v
retrieving revision 1.1
diff -u -t -r1.1 types-n-things.m4
--- types-n-things.m4	1999/03/05 14:46:23	1.1
+++ types-n-things.m4	1999/07/15 06:57:09
@@ -4,7 +4,7 @@
 We have seen a couple of types introduced already and it's probably
 time to say a few more words about them.  There are three kinds
-of type in MERCURY: discriminated unions, equivalence types and
+of types in MERCURY: discriminated unions, equivalence types and
 abstract types.  We'll have a look at each of these in order.
 All discriminated union types look something like this:
cvs diff: Diffing src

David Jeffery (dgj at cs.mu.oz.au) | If your thesis is utterly vacuous
PhD student,                    | Use first-order predicate calculus.
Dept. of Comp. Sci. & Soft. Eng.|     With sufficient formality
The University of Melbourne     |     The sheerist banality
Australia                       | Will be hailed by the critics: "Miraculous!"
                                |     -- Anon.
mercury-developers mailing list
Post messages to:       mercury-developers at cs.mu.oz.au
Administrative Queries: owner-mercury-developers at cs.mu.oz.au
Subscriptions:          mercury-developers-request at cs.mu.oz.au

More information about the developers mailing list