Here's a Go solver---- code: https://github.com/nchurch/go/blob/master/src/go/core.clj
README: https://github.com/nchurch/go It's a really fun use of core.logic: you can test for pieces being alive or dead; you can also generate all the boards that make a given piece alive or dead. See the README. There are some issues that I'd like to get input on. For one thing, I've used mutual recursion (as the Wiki article on mutual recursion says, Prolog depends on mutual recursion); I don't see any straightforward and clean way to eliminate it (you can't just trampoline). Probably because of this, you can't generate boards bigger than 15X15. Also, there's an interesting discrepancy between generating alive-for boards and dead-for boards which I don't quite understand; in the case of dead boards, the unification ends up outputting nil for any piece that helps kill the piece in question. OK, I have to stop now: Core.logic is terribly addictive..... -- 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