Hi Alex! Welcome! :) I'm sorry to hear Oz isn't being updated. It looks like a very interesting language.
The short answer to your questions is "no"--'run' doesn't expose a way to modify miniKanren's search. However, it is possible to easily modify miniKanren to perform DFS (for example). One place to look is in the microKanren pearls, which build up the search from DFS to the standard interleaving search: http://webyrd.net/scheme-2013/papers/HemannMuKanren2013.pdf https://github.com/jasonhemann/microKanren The longer answer is that it should be quite easy to implement a 'run' parameterized over the search. Ideally we would go further and emulate Ciao Prolog's ability to use different searches in different portions of a single program. (Does Oz allow this?) If you'd be interested in exploring this problem, I'd be happy to help. I'd also be happy to do a hangout with you to talk about miniKanren and Oz, if you are interested. Cheers, --Will On Tue, Nov 15, 2016 at 7:14 AM, Alex Gian <[email protected]> wrote: > Hi all, just joined. > > I have previously been doing the sort of relational programming that Kanren > offers in the language Oz. > Unfortunately Oz is effectively orphaned now, at least on the latest 64-bit > systems, so I have turned to Kanren particularly in the form of core.logic. > It is very attractive to have all the resources of clojure for free!!! > > One thing I was wondering: is the run function user programmable? Under Oz > this can be set by the user, eg, choose DFS, BFS, or any other method which > you care to program yourself in order to distribute the search. For your > amusement here is the appendo example in Oz; the run function here is > called Search. Quite similar, eh? > > > proc {AppendO L1 L2 L3} > choice > L1=nil L3=L2 > [] > X M1 M3 % like "fresh" > in > L1=X|M1 L3=X|M3 > {AppendO M1 L2 M3} > end > end > > {Show > {SearchAll proc {$ Q} [A B]=Q in {AppendO A B [r e l a t e]} end}}} > > result ==> > [ [nil [r e l a t e]] [[r] [e l a t e] [[r e] [l a t e]] [[r e l] [a t e]] > [[r e l a] [t e]] [[r e l a t] [e]] [[r e l a t e] nil] ] > > Another spinoff of programmable search is an interactive graphical > tree-explorer tool which would be a great adjunct to core.logic, if doable. > > Looking forward to getting stuck in, I've watched one of William Byrd's > videos plus a couple of uncourses, looks great plus it offers some fantastic > features that I have not seen before. > > > > > > > -- > You received this message because you are subscribed to the Google Groups > "minikanren" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to [email protected]. > To post to this group, send email to [email protected]. > Visit this group at https://groups.google.com/group/minikanren. > For more options, visit https://groups.google.com/d/optout. -- You received this message because you are subscribed to the Google Groups "minikanren" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To post to this group, send email to [email protected]. Visit this group at https://groups.google.com/group/minikanren. For more options, visit https://groups.google.com/d/optout.
