[m-users.] Just saying thank you, determinism rocks.

Sean Charles (emacstheviking) objitsu at gmail.com
Thu Jul 29 16:55:10 AEST 2021


If the text IS correct, it did add to my learning confusion!! :)

> On 29 Jul 2021, at 07:53, Volker Wysk <post at volker-wysk.de> wrote:
> 
> Hi!
> 
> Am Donnerstag, den 29.07.2021, 16:42 +1000 schrieb Zoltan Somogyi:
>> 2021-07-29 16:40 GMT+10:00 "Volker Wysk" <post at volker-wysk.de>:
>>> Am Mittwoch, den 28.07.2021, 20:42 +1000 schrieb Zoltan Somogyi:
>>>> 2. You can quantify away all the output variables of a cc_multi
>>>>    or cc_nondet computation. The different solutions of such
>>>>    computations differ only in the values of its output variables,
>>>>    so if you ignore all of them, the solutions are indistinguishable
>>>>    from the point of the caller. A cc_multi computation whose
>>>>    outputs are quantified away is det, while a cc_nondet computation
>>>>    with outputs quantified away is semidet.
>>> 
>>> I don't know what you mean by "quantify away". Is it using "_" for the
>>> output variables?
>> 
>> Yes.
> 
> In the language reference manual (
> https://www.mercurylang.org/information/doc-latest/mercury_ref/Interfacing-nondeterministic-code-with-the-real-world.html
> ), there it is written:
> 
> "If you just want one solution and don’t care which, the calling predicate
> should be declared nondet or multi. The nondeterminism should then be
> propagated up the call tree to the point at which it can be pruned."
> 
> Shouldn't this be "... should be declared cc_nondet or cc_multi..." ?
> 
> Cheers
> Volker



More information about the users mailing list