[m-dev.] [for review] vqueens.m fix
doug.auclair at logicaltypes.com
doug.auclair at logicaltypes.com
Wed Jul 12 10:00:56 AEST 2006
Dear all,
I've enclosed the diff -u for fixing the trailed_update sample vqueens.m. The
new version now compiles and gives the same answer as listed in
samples/vqueens.exp.
The previous version did not compile, as the old module attempted to bind
an any variable to a constraint dependent on another any variable (actually
against a list of any variables). It appears var.m does not have
the machinery to allow this.
I'm not happy with the compromise I did: safe/1 is now gone, and I constrain
the any variables against the already just-grounded ones. The reason why I'm not
happy with this is now I don't have a way to write constraints on a pair of
dependent any variables with var.m, and I hoping that would be possible. So
now I don't know how to implement
:- pred var(int)::ia =< var(int)::ia is semidet.
and, e.g., the implementation of all_different(list(var(T)) for var.m types is
so far reduced as to be pointless. It looks like I've lost most
the advantages that the constraint-based programming style is advertised
to give over traditional, plain-jane, logic programming.
Is there a way to write constraints against a pair of dependent any var(T)
types with var.m? freeze/[2,3] and freeze_var/3 don't seem open to
this.
Sincerely,
Doug Auclair
-------------- next part --------------
A non-text attachment was scrubbed...
Name: vqueens.diffu
Type: application/octet-stream
Size: 807 bytes
Desc: not available
URL: <http://lists.mercurylang.org/archives/developers/attachments/20060711/27fb78b4/attachment.obj>
More information about the developers
mailing list