[mercury-users] hi & a feq queries

Donald Syme Donald.Syme at cl.cam.ac.uk
Tue Aug 18 10:29:47 AEST 1998

> Actually this is a case of the error message not being all it could -
> the bug is that you're binding a non-local variable inside the pred
> expression. 

Thanks for your help.  Re. this last example: the point I was making
was that the compiler has different behaviour on beta-equivalent forms,
which surprised me, given Mercury is a pure language.  The "binding
of the non-local variable" (a rather operational way to look at it)
is clearly ok. in such limited cases.  But it's no big deal.

>	:- func f(int) = string.
>	f(N) = (if N mod 2 = 0 then "foo\n" else "bar\n").

Ah.. stupid me.  However this form is not documented in the
reference manual, but of course I should have just tried the most
obvious thing!

Thanks again,

More information about the users mailing list