Hi minikanren, I have posted a question on comp.lang.prolog about doing the 
quines trick in prolog.

Here is the link: 
https://groups.google.com/forum/#!topic/comp.lang.prolog/81dH-fK4i14

Here is copy of my mail:

-------------------------

Hello 

I'm very interested in logic programming and I was surprised when I learned 
minikanren (a prolog like language with occurs check and fair search) can 
produce quines by running the query (evalo q q) (find terms q which 
evaluate to themselves). 

You can see the code for this here 
https://github.com/webyrd/quines/blob/master/q.scm and the paper here 
http://webyrd.net/quines/quines.pdf 

As I said I was very surprised that this is possible. I assumed it was just 
the combination of occurs check and fair search - so I set out to rewrite 
the program in prolog with occurs check enabled and using tor for iterative 
deepening search. Also using dif/2 as =/=. 

Here is my rewrite http://lpaste.net/7559243673339166720 
It correctly evaluates the pre-written quine, it is able to fill in the 
blank for p1 but it cannot fill in the blank for p2 (it seems to infinite 
loop, while mk generates many quines in one second). 

So I wanted to ask does anyone have any ideas why it is not possible to 
reproduce this in prolog? 

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