Różnice
Różnice między wybraną wersją a wersją aktualną.
|
|
pl:prolog:pllib:meta_interpreter_2 [2019/06/27 15:50] |
pl:prolog:pllib:meta_interpreter_2 [2019/06/27 15:50] (aktualna) |
| ====== Meta interpreter 2 ====== |
| {{tag>metainterpreter trees proof}} |
| ===== Description ===== |
| A meta-interpreter for building a proof tree |
| |
| **Source**: The Art of Prolog |
| ===== Download ===== |
| Program source code: {{meta_interpreter_2.pl}} |
| ===== Listing ===== |
| <code prolog> |
| /* |
| solve(Goal,Tree) :- |
| Tree is a proof tree for Goal given the program |
| defined by clause/2. |
| */ |
| solve(true,true) :- !. |
| solve((A,B),(ProofA,ProofB)) :- !, |
| solve(A,ProofA), solve(B,ProofB). |
| solve(A,(A:-builtin)) :- builtin(A), !, A. |
| solve(A,(A:-Proof)) :- |
| clause(A,B), solve(B,Proof). |
| |
| % Program 17.8 A meta-interpreter for building a proof tree |
| </code> |
| ===== Comments ===== |
| |