Yep infd's api is a bit annoying - I'd like to change it to match
distinctfd.

David


On Tue, Nov 27, 2012 at 5:57 PM, Frederik De Bleser
<frede...@burocrazy.com>wrote:

> I had some trouble because all goals need to take in the list of lvars.
> `infd` doesn't take in a list, but your sudoku blog post has `all-infd`
> which does the trick:
>
>     (defn all-infd
>       "Assign a domain to all vars."
>       [vars domain]
>       (if (seq vars)
>         (all
>           (domfd (first vars) domain)
>           (all-infd (next vars) domain))
>         succeed))
>
> Which means that `distinct-numbers` can be written as such:
>
>     (defn distinct-numbers [n min max]
>       "Generate all combinations of n numbers between min and max."
>       (run* [q]
>         (let [vars (repeatedly n lvar)]
>           (all
>             (all-infd vars (interval min max))
>             (distinctfd vars)
>             (== q vars)))))
>
>
>     user=> (distinct-numbers 3 6 8)
>     ((6 7 8) (6 8 7) (7 6 8) (7 8 6) (8 6 7) (8 7 6))
>
> Thanks for the help!
>
> Frederik
>
>>
>>  --
> You received this message because you are subscribed to the Google
> Groups "Clojure" group.
> To post to this group, send email to clojure@googlegroups.com
> Note that posts from new members are moderated - please be patient with
> your first post.
> To unsubscribe from this group, send email to
> clojure+unsubscr...@googlegroups.com
> For more options, visit this group at
> http://groups.google.com/group/clojure?hl=en
>

-- 
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to clojure@googlegroups.com
Note that posts from new members are moderated - please be patient with your 
first post.
To unsubscribe from this group, send email to
clojure+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en

Reply via email to