The attached file didn't come through: http://pastebin.com/Qf5j35dg
On Wed, Jun 26, 2013 at 10:47 PM, Michal D. <[email protected]>wrote: > Hi Mike, > > I don't fully follow your example because it never returns a value that > you are searching for. Something like this would seem to make more sense > to me: > > def bk(w) > if illegal(w) return null > if goal(w) return w > a = bk(w+'a'); if a != null then return a > b = bk(w+'b'); if b != null then return b > c = bk(w+'c'); if c != null then return c > end > bk('') > > The above also doesn't jive all that well with "searching for the longest > string" which seems like a potentially infinite endeavour. > > I have attached some code I quickly hacked up for doing arc consistency > search. There's a lot more context there but you are interested in the > 'search' function. Maybe someone else can shed light on how to pass around > and apply verbs as arguments. Combining the two would give you what you're > looking for I think. > > Like Raul said, this isn't the use case where J shines unless the > computations denoted by illegal(), goal() or +'a' are significant. > > Cheers, > > Mike > > > > > On Wed, Jun 26, 2013 at 1:37 AM, Mike Müller <[email protected]> wrote: > >> Hello! >> >> I hope this is not too simple a question for this list, but I'm still >> learning J and wonder how to do a simple backtracking in J. >> For instance, I might want to see what is the longest string consisting >> of a,b, and c, that fulfills some property P. >> In any imperative language (here: ruby) I would do something like this… >> >> def bk(w) >> if (!P(w)) return >> bk(w+"a") >> bk(w+"b") >> bk(w+"c") >> end >> bk("") >> >> …and combine it with some bookkeeping of which was the longest that I've >> seen so far and maybe some output every 100 steps, >> if there is actually no longest one (that is, there is an infinite one >> fulfilling P). >> >> I'm very interested how to do these kind of things elegantly in J. >> >> Best regards, >> Mike >> ---------------------------------------------------------------------- >> For information about J forums see http://www.jsoftware.com/forums.htm >> > > ---------------------------------------------------------------------- For information about J forums see http://www.jsoftware.com/forums.htm
