You can do something like the following: (run [q] (let [vars (repeatedly some-n lvar)] (all (== q vars))))
functional programming FTW ;) David On Mon, Nov 26, 2012 at 10:22 AM, Frederik De Bleser <frede...@burocrazy.com > wrote: > Using core.logic, I sometimes have the need to create a variable number of > fresh lvars. > > For example, I want to create all possible combinations of "n" numbers > between "min" and "max". Currently the only way I found how to do this was > building the expression and evalling it: > > (defn generate-symbols [n] > (for [i (range 0 n)] > (gensym 'x))) > > (defn distinct-numbers [n min max] > (let [lvars (generate-symbols n)] > (eval > `(run* [q#] > (fresh [~@lvars] > (infd ~@lvars (interval ~min ~max)) > (distinctfd [~@lvars]) > (== q# [~@lvars])))))) > > > > Is there a better way to do this? > > Kind regards, > > 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