[mercury-users] Implementing Edison in Mercury

Richard A. O'Keefe ok at atlas.otago.ac.nz
Thu Sep 21 13:02:57 AEDT 2000


"Edison" is a concurrent programming language invented by Per Brinch Hansen
and described in Software Practice and Experience, if I recall correctly.

I've now read the paper, and I would argue that it is a bad idea to follow
the naming practices of someone who thinks that "snoc" is a good name for
the operation of adding an element to a queue.

Okasaki mentioned the possibility of an ML version.  I would like to see
the actuality before jumping on the "Edison" bandwagon.

The big thing of course is that Mercury has predicates and the option
of nondeterminism when you want it.  As Okasaki himself pointed out in 
his book, that does make a difference to which data structures count as
"optimal".  It will certainly make a big difference to what kinds of
interfaces should be available.

I would also take issue with his praise of the C++ STL.
>From my experience, it is
(a) moderately to highly inefficient
(b) clumsy to use
(c) surprisingly hard for many people to learn.

If I've read the paper correctly, Okasaki does not offer an efficient
implementation of sets.

In short, while we should certainly learn from Okasaki,
we should not imitate him slavishly.
--------------------------------------------------------------------------
mercury-users mailing list
post:  mercury-users at cs.mu.oz.au
administrative address: owner-mercury-users at cs.mu.oz.au
unsubscribe: Address: mercury-users-request at cs.mu.oz.au Message: unsubscribe
subscribe:   Address: mercury-users-request at cs.mu.oz.au Message: subscribe
--------------------------------------------------------------------------



More information about the users mailing list