Exemplo n.º 1
0
        public void ParseSumArray()
        {
            var context = Parse(
                "let sum [] = 0;\r\n" +
                "let sum (x:xs) = add x (sum xs);\r\n"
                );
            var sum    = context["sum"];
            var array  = ScriptingValue.CreateArray(1, 2, 3, 4, 5);
            var result = sum.Invoke(array);

            Assert.AreEqual(15, (int)result.Value);
        }
Exemplo n.º 2
0
        public void ParseCountArray()
        {
            var context = Parse(
                "let count [] = 0;\r\n" +
                "let count (x:xs) = add 1 (count xs);\r\n" +
                "let main = count [1,2.2,\"3\",true,false];\r\n"
                );
            var count  = context["count"];
            var array  = ScriptingValue.CreateArray(1, 2, 3, 4, 5);
            var result = count.Invoke(array);

            Assert.AreEqual(5, (int)result.Value);
            Assert.AreEqual(5, context["main"].Value);
        }
Exemplo n.º 3
0
        public void ParseSumTree()
        {
            var context = Parse(
                "let sum ['leaf, n] = n;\r\n" +
                "let sum ['tree, m, n] = add (m :> sum) (sum n);\r\n"
                );
            var sum  = context["sum"];
            var tree = ScriptingValue.CreateArray(
                new Flag("tree"),
                ScriptingValue.CreateArray(
                    new Flag("tree"),
                    ScriptingValue.CreateArray(
                        new Flag("leaf"),
                        1
                        ),
                    ScriptingValue.CreateArray(
                        new Flag("leaf"),
                        2
                        )
                    ),
                ScriptingValue.CreateArray(
                    new Flag("tree"),
                    ScriptingValue.CreateArray(
                        new Flag("leaf"),
                        3
                        ),
                    ScriptingValue.CreateArray(
                        new Flag("leaf"),
                        4
                        )
                    )
                );
            var result = sum.Invoke(tree);

            Assert.AreEqual(10, (int)result.Value);
        }