[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Logic programming with prompts
From: |
Stefan Israelsson Tampe |
Subject: |
Logic programming with prompts |
Date: |
Sun, 24 Mar 2013 14:20:04 +0100 |
User-agent: |
KMail/4.9.5 (Linux/3.5.0-26-generic; KDE/4.9.5; x86_64; ; ) |
Dear friends,
I think that the current state of guile is in a sad state for logic
programming with prompts in guile. I really think that we should fix
the most pressing issues or stop touting prompts as a way to implement
logic programming and direct to kanren or guile-log instead.
Issues.
1. with a prompt based solution fluids is the natural choice to
implement backtracking logical variables. But the current fluid
implementation is fundamentally broken with respect to undo and
redo semantics and will haunt any project that want to have
interactive logic reasoning implemented. It's possible to fix it
in pure guile with a horrible complex solution and will lead to
laughable performance.
2. with-fluids is not tail recursive. It is quite possible that
project will fail due to burnout of the stack in current guile
because of this. One probably cannot get kanrens great support
for tail call's implemented but at-least reduce the total memory
consumption quite significantly.
3. Speed, Logic programming in pure guile is currently 100x slower then
than with e.g. gprolog. It can be imporved to 20x by using a C-based
backend. It's possible to get down to 4x (with prompts) if we could
have a fast C-call mechansim or support in the VM.
4. This is a less important issue. But in order to implement all
logic constructs found in kanren with prompts you will need to
be able to use a special-variables construct that i'm touting
which is needed if one want to be able to undo and redo things.
Regards
Stefan
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- Logic programming with prompts,
Stefan Israelsson Tampe <=