[LOGIC-52] Bug in finite domains (+fd, infd) Created: 10/Sep/12 Updated: 26/Oct/12 Resolved: 26/Oct/12 |
|
| Status: | Resolved |
| Project: | core.logic |
| Component/s: | None |
| Affects Version/s: | None |
| Fix Version/s: | None |
| Type: | Defect | Priority: | Major |
| Reporter: | naeg | Assignee: | David Nolen |
| Resolution: | Completed | Votes: | 1 |
| Labels: | +fd, bug, finite-domains, infd | ||
| Environment: |
Clojure 1.4, core.logic 0.8-alpha3 |
||
| Description |
|
When running the code: (run* [q] I get the ouput: ([5 4 3 1]) But I would expect: () Because [5 4 3 1] is no sequence where the next element is always one number higher than the one before. It seems to me like +fd behaves as it would take the next element in the domain, instead of taking the next higher number (I hope I didn't misunderstand +fd or infd). |
| Comments |
| Comment by naeg [ 11/Sep/12 4:48 PM ] |
|
There is workaround using membero: (run* [q]
(fresh [a b c d]
(everyg #(membero % [1 3 4 5]) [a b c d])
(+fd b 1 a)
(+fd c 1 b)
(+fd d 1 c)
(== q [a b c d])))
=> () Note that this is quite a lot slower than it would be with infd. |
| Comment by David Nolen [ 26/Oct/12 1:03 AM ] |
|
This is fixed try the latest 0.8.0 beta |