public void IncreaseTest()
        {
            Numeral numeral = 0U.Church();

            Assert.AreEqual(0U + 1U, (numeral = numeral.Increase()).Unchurch());
            Assert.AreEqual(1U + 1U, (numeral = numeral.Increase()).Unchurch());
            Assert.AreEqual(2U + 1U, (numeral = numeral.Increase()).Unchurch());
            Assert.AreEqual(3U + 1U, (numeral = numeral.Increase()).Unchurch());
            numeral = 123U.Church();
            Assert.AreEqual(123U + 1U, numeral.Increase().Unchurch());
        }
예제 #2
0
        internal static void Point(Numeral x, Numeral y)
        {
            Tuple <Numeral, Numeral> point1 = ChurchTuple <Numeral, Numeral> .Create(x)(y);

            Numeral x1 = point1.Item1();
            Numeral y1 = point1.Item1();

            // Move up.
            Numeral y2 = y1.Increase();
            Tuple <Numeral, Numeral> point2 = ChurchTuple <Numeral, Numeral> .Create(x1)(y2);
        }