On Fri, Oct 5, 2012 at 8:51 AM, nchurch <[email protected]> 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 [email protected]
Note that posts from new members are moderated - please be patient with your
first post.
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en