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.

Reply via email to