[mercury-users] Mercury in academic teaching?

Nicholas Nethercote njn at csse.unimelb.edu.au
Sat Oct 7 11:49:12 AEST 2006


On Sat, 7 Oct 2006, Jonathan Morgan wrote:

>> Is Mercury an option as introduction to logic programming?
>
> As a student who is just studying Prolog, I do not believe that
> Mercury is likely to be a good introductory logic programming language
> for several reasons.  The main one is very simple - Mercury was not
> designed for simplicity, but rather for performance and large-scale
> Software Engineering.  In my opinion, this makes it a great language
> for using to write real programs, but not for education, as even small
> programs require understanding of Mercury's module system, type and
> mode system (unless you use inference), and the I/O state.  On the
> contrary, most Prologs do not require types, and have interpreters,
> allowing them to be used in an exploratory manner quickly and easily -
> which I feel is much better for education as an introduction to logic
> programming.  Prolog is much simpler (and probably more elegant) for
> writing small programs in, and for playing round with to discover how
> things like non-determinism work.

I disagree.  I studied Prolog first, but didn't properly understand it until 
I learnt Mercury and learnt explicitly about modes and determinism;  it was 
only then I understood what Prolog was doing.

I don't think Mercury's module system is difficult at all (particularly if 
you're writing single-module programs), and the I/O isn't that difficult -- 
it's much simpler than Haskell's and Haskell is routinely taught to computer 
science novices.

Nick
--------------------------------------------------------------------------
mercury-users mailing list
Post messages to:       mercury-users at csse.unimelb.edu.au
Administrative Queries: owner-mercury-users at csse.unimelb.edu.au
Subscriptions:          mercury-users-request at csse.unimelb.edu.au
--------------------------------------------------------------------------



More information about the users mailing list