On Fri, Oct 5, 2012 at 8:51 AM, nchurch <nchubr...@gmail.com> wrote:

> Hmm!  Then I must have hit the limit for how many arguments I can put
> in an arglist, there in fresh: (i.e. (fresh [~@positions]).  I had no
> idea there \was a limit.  Can't see any way around that at the
> moment.  I never dreamed I'd try to put > 256 arguments in a
> function....
>

It's pretty easy to surmount. Remember fresh is just sugar over let:

(fresh [x y]
  ...)

=>

(let [x (lvar 'x)
      y (lvar 'y)]
  ...)

You can construct lvars yourself and put them into a sequence and then pull
them apart.

(let [board (take 255 (make-seq-of-lvars))]
  (all
    ... goals ...))

I don't have time to go into all the details but this blog post should give
you some more guidance: http://dosync.posterous.com/friendlier-shorter

Note that it's quite easy to mix the functional and logical style ;)

David

-- 
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