summaryrefslogtreecommitdiff
path: root/example
diff options
context:
space:
mode:
Diffstat (limited to 'example')
-rw-r--r--example/zebra.adb48
1 files changed, 24 insertions, 24 deletions
diff --git a/example/zebra.adb b/example/zebra.adb
index df30937..5b933da 100644
--- a/example/zebra.adb
+++ b/example/zebra.adb
@@ -54,15 +54,15 @@ procedure Zebra is
function On_Right
- (This : in World;
+ (This : in Goal;
Inputs : in Term_Array)
- return World
+ return Goal
is
Left_Term : Term renames Inputs (1);
Right_Term : Term renames Inputs (2);
List_Term : Term renames Inputs (3);
- One, Two : World := This;
+ One, Two : Goal := This;
One_Ref : constant Term := One.Fresh;
Two_Ref : constant Term := Two.Fresh;
begin
@@ -78,9 +78,9 @@ procedure Zebra is
function Next_To
- (This : in World;
+ (This : in Goal;
Inputs : in Term_Array)
- return World
+ return Goal
is
Left_Term : Term renames Inputs (1);
Right_Term : Term renames Inputs (2);
@@ -92,9 +92,9 @@ procedure Zebra is
end Next_To;
- Verse : World := Empty_World;
+ Relation : Goal := Empty_Goal;
- function N is new Make_Fresh (Verse);
+ function N is new Make_Fresh (Relation);
Houses : constant Term_Array := N & N & N & N & N;
Houses_Term : constant Term := T (Houses);
@@ -103,36 +103,36 @@ procedure Zebra is
begin
- Verse.Unify (Houses (1), T (T (+"norwegian") & N & N & N & N));
- Verse.Unify (Houses (3), T (N & N & T (+"milk") & N & N));
+ Relation.Unify (Houses (1), T (T (+"norwegian") & N & N & N & N));
+ Relation.Unify (Houses (3), T (N & N & T (+"milk") & N & N));
- Verse.Member (T (T (+"englishman") & N & N & N & T (+"red")) & Houses_Term);
- Verse.Member (T (N & T (+"kools") & N & N & T (+"yellow")) & Houses_Term);
- Verse.Member (T (T (+"spaniard") & N & N & T (+"dog") & N) & Houses_Term);
- Verse.Member (T (N & N & T (+"coffee") & N & T (+"green")) & Houses_Term);
- Verse.Member (T (T (+"ukrainian") & N & T (+"tea") & N & N) & Houses_Term);
- Verse.Member (T (N & T (+"luckystrikes") & T (+"oj") & N & N) & Houses_Term);
- Verse.Member (T (T (+"japanese") & T (+"parliaments") & N & N & N) & Houses_Term);
- Verse.Member (T (N & T (+"oldgolds") & N & T (+"snails") & N) & Houses_Term);
+ Relation.Member (T (T (+"englishman") & N & N & N & T (+"red")) & Houses_Term);
+ Relation.Member (T (N & T (+"kools") & N & N & T (+"yellow")) & Houses_Term);
+ Relation.Member (T (T (+"spaniard") & N & N & T (+"dog") & N) & Houses_Term);
+ Relation.Member (T (N & N & T (+"coffee") & N & T (+"green")) & Houses_Term);
+ Relation.Member (T (T (+"ukrainian") & N & T (+"tea") & N & N) & Houses_Term);
+ Relation.Member (T (N & T (+"luckystrikes") & T (+"oj") & N & N) & Houses_Term);
+ Relation.Member (T (T (+"japanese") & T (+"parliaments") & N & N & N) & Houses_Term);
+ Relation.Member (T (N & T (+"oldgolds") & N & T (+"snails") & N) & Houses_Term);
- Verse := On_Right (Verse,
+ Relation := On_Right (Relation,
T (N & N & N & N & T (+"ivory")) &
T (N & N & N & N & T (+"green")) & Houses_Term);
- Verse := Next_To (Verse,
+ Relation := Next_To (Relation,
T (T (+"norwegian") & N & N & N & N) &
T (N & N & N & N & T (+"blue")) & Houses_Term);
- Verse := Next_To (Verse,
+ Relation := Next_To (Relation,
T (N & N & N & T (+"horse") & N) &
T (N & T (+"kools") & N & N & N) & Houses_Term);
- Verse := Next_To (Verse,
+ Relation := Next_To (Relation,
T (N & N & N & T (+"fox") & N) &
T (N & T (+"chesterfields") & N & N & N) & Houses_Term);
- Verse.Member (T (N & N & T (+"water") & N & N) & Houses_Term);
- Verse.Member (T (N & N & N & T (+"zebra") & N) & Houses_Term);
+ Relation.Member (T (N & N & T (+"water") & N & N) & Houses_Term);
+ Relation.Member (T (N & N & N & T (+"zebra") & N) & Houses_Term);
- Result := Verse.Take_First;
+ Result := Relation.Run;
for House of Houses loop
TIO.Put_Line (Printer.Image (House.Resolve (Result)));