diff options
Diffstat (limited to 'example/zebra.adb')
| -rw-r--r-- | example/zebra.adb | 48 |
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))); |
