Exemple #1
0
    static IEnumerable <bool> uncle(object Person, object Uncle)
    {
        UnifyingVariable Parent = new UnifyingVariable();

        foreach (bool l1 in parent(Person, Parent))
        {
            foreach (bool l2 in brother(Parent, Uncle))
            {
                yield return(false);
            }
        }
    }
Exemple #2
0
 static IEnumerable <bool> personWithUnify(UnifyingVariable Person)
 {
     foreach (bool l1 in Person.unify("Chelsea"))
     {
         yield return(false);
     }
     foreach (bool l1 in Person.unify("Hillary"))
     {
         yield return(false);
     }
     foreach (bool l1 in Person.unify("Bill"))
     {
         yield return(false);
     }
 }
Exemple #3
0
    static void Main(string[] args)
    {
        Console.WriteLine("Names using a return value:");
        foreach (string p in personWithReturnValue())
        {
            Console.WriteLine(p);
        }

        Console.WriteLine("Names using SimpleVariable:");
        SimpleVariable P = new SimpleVariable();

        foreach (bool l1 in personWithSimpleVariable(P))
        {
            Console.WriteLine(P._value);
        }

        Console.WriteLine("Names using UnifyingVariable:");
        UnifyingVariable Person = new UnifyingVariable();

        foreach (bool l1 in personWithUnify(Person))
        {
            Console.WriteLine(Person._value);
        }

        Console.WriteLine("Use unify to check a person:");
        foreach (bool l1 in Person.unify("Hillary"))
        {
            foreach (bool l2 in personWithUnify(Person))
            {
                Console.WriteLine("Hillary is a person.");
            }
        }
        foreach (bool l1 in Person.unify("Buddy"))
        {
            foreach (bool l2 in personWithUnify(Person))
            {
                // This won't print.
                Console.WriteLine("Buddy is a person.");
            }
        }

        Console.WriteLine("Use generalUnify to check a person:");
        foreach (bool l1 in person("Hillary"))
        {
            Console.WriteLine("Hillary is a person.");
        }
        foreach (bool l1 in person("Buddy"))
        {
            // This won't print.
            Console.WriteLine("Buddy is a person.");
        }

        Console.WriteLine("Find relations:");
        UnifyingVariable Brother = new UnifyingVariable();

        foreach (bool l1 in brother("Hillary", Brother))
        {
            Console.WriteLine("Hillary has brother " +
                              Brother._value + ".");
        }

        Console.WriteLine("Joining functions:");
        UnifyingVariable Uncle = new UnifyingVariable();

        foreach (bool l1 in uncle(Person, Uncle))
        {
            Console.WriteLine(Person._value +
                              " has uncle " + Uncle._value + ".");
        }

        Console.WriteLine("\nPress Enter to finish.");
        Console.ReadLine();
    }