From: Kish Shen <kisshen_at_cisco.com>

Date: Tue, 31 Jul 2007 23:13:35 +0100

Date: Tue, 31 Jul 2007 23:13:35 +0100

Hi Bill, Bill Wood wrote: > This is driving me nuts. I am fairly comfortable with Prolog but I'm a > newbie with eclipse. > > I used tkeclipse+emacs to, first, build, compile and run a file with > SEND_MORE_MONEY example; it went flawlessly. I then started modifying > the file to solve a different constraint problem, involving a collection > of digits with constraints on various subsets of them. Here's the > modified file: > > foo( Digits ) :- > Digits = [D01,D02,D03,D04,D05,D06,D07,D08,D09,D10], > Digits :: [0 .. 9], > alldifferent( Digits ), > D01 #\= 0, > > (D02 * 100 + D03 * 10 + D04) mod 2 #= 0, > (D03 * 100 + D04 * 10 + D05) mod 3 #= 0, > (D04 * 100 + D05 * 10 + D06) mod 5 #= 0, > (D05 * 100 + D06 * 10 + D07) mod 7 #= 0, > (D06 * 100 + D07 * 10 + D08) mod 11 #= 0, > (D07 * 100 + D08 * 10 + D09) mod 13 #= 0, > (D08 * 100 + D09 * 10 + D10) mod 17 #= 0, > labeling( Digits ). > > Doing make in tkeclipse seems to go OK -- I only get the following in > the Message window: > > fubb.ecl compiled traceable 2952 bytes in 0.00 seconds > > But when I place the query "foo(Digits)." in the Query window and hit > return I get the following message: > > number expected in mod(D02{0 .. 9} * 100 + D03{0 .. 9} * 10 + > D04{0 .. 9}, 2, _894{-1.0Inf .. 1.0Inf}) > > It looks like a complaint about unbound variables in the expression, but > I can't figure out why the constraints in the SEND_MORE_MONEY can have > variables and the constrainbys can't. The tutorial explicitly says that > "IC supports a range of mathematical operators beyond +/2, -/2, */2, > etc. See the IC chapter in the Constraint Library Manual for full > details." (pg. 78). Page 70 of the User Manual describes the mod > operator. I haven't seen anything about some operators being > unavailable in constraint expressions. > > IC supports a subset of the mathematical operators, and mod/2 is *not* supported, so if it appears in an expression posted as a constraint, it is evaluated at that point, and you get an error because of the uninstantiated variables. . The operators supported by IC are described in the IC chapter of the Constraint Library Manual, as quoted by you: http://eclipse.crosscoreop.com/doc/tutorial/tutorial057.html This is not the same as the User Manual. You can also get help information while you are running ECLiPSe, using the help/1 query, which works in both tkeclipse and eclipse, e.g. help lib(ic). In tkeclipse, you can also get the same information via the "ECLiPSe Library Browser and Help" tool from the "Tools" menu. You can also access the manual online as html pages -- these are included in the documentation package (eclipse_doc.tgz). The information for help lib(ic) includes which operators are supported by IC as well. Cheers, Kish Shen > -- Bill Wood > > > > _______________________________________________ > ECLiPSe-Users mailing list > ECLiPSe-Users_at_crosscoreop.com > http://www.crosscoreop.com/mailman/options/eclipse-users >Received on Tue Jul 31 2007 - 23:14:04 CEST

*
This archive was generated by hypermail 2.2.0
: Thu Feb 02 2012 - 02:31:58 CET
*