public void BooleanTests() { Func <int, Func <int, int> > t1 = a => b => a + b; int f1 = 1; Assert.AreEqual(ChurchBoolean.True(t1)(f1), SkiCalculus.True(t1)(f1)); Assert.AreEqual(ChurchBoolean.False(t1)(f1), SkiCalculus.False(t1)(f1)); Func <int, int> t2 = a => a + 1; int f2 = 2; Assert.AreEqual(ChurchBoolean.True(t2)(f2), SkiCalculus.True(t2)(f2)); Assert.AreEqual(ChurchBoolean.False(t2)(f2), SkiCalculus.False(t2)(f2)); }
public static Boolean Not(this Boolean a) => ChurchBoolean.Not(a);
public static Boolean Or(this Boolean a, Boolean b) => ChurchBoolean.Or(a)(b);
public static Boolean And(this Boolean a, Boolean b) => ChurchBoolean.And(a)(b);