[mercury-users] Making (cc_)multi into det?

Ralph Becket rbeck at microsoft.com
Thu Aug 23 01:42:57 AEST 2001


> From: Ondrej Bojar [mailto:oboj7042 at ss1000.ms.mff.cuni.cz]
> Sent: 22 August 2001 15:58
> 
> Is there a way to change (cc_)multi into det?

The builtin function promise_only_solution/1 is used for this.

> The reason to do is simple: I have a predicate, that can succeed more
than
> once. But I whould like to get any of the solutions and use it in a
> predicate, that is otherwise det. And I don't want mercury to
propagate
> the truth about multiple solutions further.

You have to be careful with this sort of thing: if you lie to the
compiler you'll come a cropper eventually.  That said, there's no
operational difference between cc_multi and det.

Propagating cc_nondet/cc_multi usually isn't as big a pain as you 
imagine.

> ...I want a "simple" solution to a complex question and I don't like
to
> hear all the truth... :-)
> 
> Can I wrap the inner multi-solution predicate into something that
would
> make it look like "det"?

Tut tut!  Bad form unless your pred really is det.

- Ralph
--------------------------------------------------------------------------
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