Hi Will

Thanks for the reply and the offer, I may well take you up on it at some 
stage.  At the moment I am still finding out what KanRen *can* do, hey, I 
only started on Reasoned Schemer last night, LOL..  I think there might 
some interesting dimensions there, which were not present in Oz, I think 
you touched on some of them in your "A Vision for Relational Programming in 
KanRen" video, which was absolutely brilliant, BTW, cheers!
It's been a while since I've done any elementary Prolog courses, but I 
think the enforced occurs check leads to some interesting ideas.

I'll probably be popping by one of your hangouts when I'm a little more *au 
fait* with MiniKanren and particularly core.logic, since my applications 
are currently more in Clojure than Scheme.

I do believe that control of the search mechanism is important, and it 
would be cool to see something like it in a Kanren of the future!  I never 
got round to using Ciao Prolog but that sounds like the sort of thing I'm 
on about.  In Oz any procedure can be searched by any search engine (i.e. 
"run" mechanism), so I guess, yes, you can combine different types of 
searches and nest them, though I've never done it.

Incidentally the bible for Oz is CTM 
<https://mitpress.mit.edu/books/concepts-techniques-and-models-computer-programming>,
 
which has been very widely acclaimed as the new SICP!
Oz itself, as well as being relational, offering logic-style variables, is 
also a dataflow language, which means computations can block until data is 
sufficiently instantiated to proceed.  The internal model is that of a 
constraint store.  Its final great feature is "computational spaces" which 
allow propagation/spawning of candidate solutions without backtracking 
through cloning, merging any successful branches back into the original.  
Best manual for this, and how alternative searches are performed is 
probably Programming Constraint Services 
<https://pdfs.semanticscholar.org/6d12/db1f1339d37258f23843fe2896b13dd816d6.pdf>
 
which I also just found in a slightly more abridged presentation 
<https://www.ps.uni-saarland.de/courses/seminar-ws04/papers/halachev.pdf>.  
Other papers with some interesting approaches to graphical tools for 
programmable search here 
<https://www.comp.nus.edu.sg/~henz/publications/pdf/stk.pdf> (nice 
interfaces), and also here 
<http://www.ps.uni-saarland.de/Papers/abstracts/abstractionsMOZ04.pdf>.

Sorry for the "hijack" I don't mean to prattle on too much about Oz, but 
there may be some useful ideas there, especially for core.logic, which has 
the full backing of the Java arsenal for graphics.  Incidentally, I noticed 
that the core.logic implementation was not as flexible as the Scheme one, 
for instance not allowing
 (run* (p q) (...expression in p and q...))  ;  as per your Vision video
and forcing the use of
  (run* (w) (fresh (p q) (== w (list p q) (...expression in p and q...))  ; 
similar to my Oz example above

OTHER than this, can you confirm that the two systems are equivalently 
powerful?  I wouldn't want to start with core.logic only to find that there 
is something it cannot do, which the Scheme version can, especially when we 
get to the cool logic/proof stuff!

Finally, please excuse any clangers I might drop, I am not an academic, 
merely a hobbyist, and some areas of my knowledge are a bit sketchy.

Thanks again for your great work!
I think a good embedded logic system in Clojure will have a *great* future.
I look forward to chatting in future, especially re logic applications of 
Kanren.  Some ideas are already in my mind...




On Tuesday, November 15, 2016 at 11:36:17 PM UTC, William Byrd wrote:
>
> Hi Alex!  Welcome!  :) 
>
> [etc...]
>
 

-- 
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