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.

Reply via email to