Example #1
0
    static void TestLambda()
    {
        System.Console.WriteLine("=====================");
        System.Console.WriteLine("Testing Lambda:");
        Lambda l = new Lambda(
            new Variable(new E(), 0),
            new App(
                new Variable(new Arrow(new E(), new T()), 8),
                new Variable(new E(), 0)));

        System.Console.WriteLine(l);

        LogicalForm noChange = l.Bind(0, new Constant(new E(), 40));

        System.Console.WriteLine(noChange);

        LogicalForm variableReplace =
            l.Bind(8, new Constant(new Arrow(new E(), new T()), 60));

        System.Console.WriteLine(variableReplace);

        System.Console.WriteLine(l.Apply(new Constant(new E(), 40)));

        System.Console.WriteLine("=====================");
    }