[m-dev.] Syntactic sugar for functor matching

Peter Schachte schachte at cs.mu.OZ.AU
Thu Nov 1 15:47:54 AEDT 2001

On Thu, Nov 01, 2001 at 03:15:12PM +1100, Michael Day wrote:
> > Solving the problem Fergus is referring to would mean Mercury would have to
> > forbid a type having two constructors with the same name (and different
> > arities).  At least as far as I can see allowing a syntax that doesn't
> > specify the arity but still uniquely determines a constructor seems to mean
> > that the functor name alone must determine the constructor.  But if you're
> > willing to accept that, here's a suggestion.
> Presumably types could still have two constructors with the same name but
> different arity as long as neither of them were used in the pattern
> matching you've described (if aforementioned pattern matching is smart
> enough, anyway).

You could be sophisticated in where you draw the line, such as based on the
names or types of arguments, but there's no way you can unambiguously write
foo[] when the type has two constructors named foo.

Peter Schachte              There is no statute of limitations on stupidity.
schachte at cs.mu.OZ.AU        -- Randomly produced by a computer program
www.cs.mu.oz.au/~schachte/  called Markov3. 
Phone: +61 3 8344 9166      
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