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.