[m-dev.] for review: add `do_while/4' to std_util.m
Ralph Becket
rbeck at microsoft.com
Wed Oct 20 19:19:38 AEST 1999
Just one point...
> :- pred q(int::out, int::out) is nondet.
>
> q(X, Y) :-
> p(X),
> (if some [Y1] p(Y1) then
> Y = Y1
> else
> Y = 42
> ).
I find the quantification here a tad confusing. My intuition says that
the quantification `some [Y1]' has scope just in the condition of the
if-then-else - which would make `Y1' free in the then clause - but it
clearly extends into the then clause. I would write this along the
lines of
Y = some [Y1] (if p(Y1) then Y1 else 42)
I know it's just some test code; I just want to know if Fergus' code is
the `correct' idiom and, if so, why?
Ta,
Ralph
--------------------------------------------------------------------------
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