[mercury-users] Mercury needs a Tutorial

Leon Smith lps at po.cwru.edu
Fri Feb 12 14:01:30 AEDT 1999


Ralph Becket <rwab1 at cam.sri.com> writes:
> ... assume nothing other than a reasonably
>general computer science background and some past programming
>experience.

Sounds good.  Work from the ground up, explaining the basics of LP.

>4. One problem with teaching Mercury is that there are a number of
>subtle aspects to the language that you are usually forced to consider
>explicitly in your code (e.g. mode and determinism declarations).
>Teaching a non-Prolog type how "Hello, World!" works is non-trivial.
>The very first example introduces modules, interfaces, module use,
>implementations, unique modes and DCGs!  You should probably add the
>notion of `predicate' to that list as well.  In my first draft I've
>mentioned these with a few calming words to the effect that all will
>become clear in time.  

I lied when said I'm completely in the dark on LP.  I'm mostly in the dark.
 I have read a few things that explained the basics of Prolog.  However, I
have never actually written a Logic Program.   I have a very basic
understanding of predicates, facts, and queries.  I think I know what
modality is, and I have an educated guess as to what determinism is.
However, I lack the understanding and vocabulary to make sense of the
report and the various paper.

Modules, interfaces, and implementations should be pretty familiar.


>That said, Leon, scaling the learning cliff is well worth the effort!  

I'm sure it will be.  I am interested by what very little I know.

>My friends are sick of me evangelising about how cool Mercury is to
program in.

As are mine.  I am sure they are sick of hearing about Haskell, and to a
lesser extent Modula-3.  They will probably someday be sick of hearing
about Mercury as well. :)

On the other hand, I don't hesitate to bash languages that I think are bad.
 C++ and Perl are the big ones in this category.

> > 5. How far is the tutorial expected to take people?
> 
> The further, the better.  But we could start off small and then
> gradually extend it.  Once we have a basic tutorial in place,
> different people could work on different sections.

I agree.  Also, I would definitely concentrate on ideas and not details.
The tutorial should give people a basic understanding of the major features
of the language, and the confidence to attack the manual.  

As for higher order programming, I certainly wouldn't leave home without it
either.  Take that away from FP, for example, and what is left isn't much fun.

I'll be most happy to read and comment on whatever you send me.  I am now
subscribed to this list.

best,
leon






More information about the users mailing list