Example #1
0
        /// <summary>
        /// Get the longest list of arguments.
        /// For a parameter set like p1, p2, p3 and argument lists like {a} {b1,b2,b3} {c1,c2}
        /// This will return a List of Lists of objects like:
        /// {a,b1,c1} {a,b2,c2} {a,b3,c2}
        /// </summary>
        /// <param name="args"></param>
        /// <param name="pi"></param>
        /// <returns></returns>
        private static List <List <object> > GetLongestArguments(FSharpList <Value> args, ParameterInfo[] pi)
        {
            var parameters = new List <List <object> >();

            //find the LARGEST list in the inputs
            int end = args.Where(arg => arg.IsList).Select(arg => ((Value.List)arg).Item.Count()).Concat(new[] { 1 }).Max();

            BuildParameterList(args, pi, end, parameters);

            return(parameters);
        }
Example #2
0
        /// <summary>
        /// Get the shortest list of arguments.
        /// For a parameter set like p1, p2, p3 and argument lists like {a} {b1,b2,b3} {c1,c2}
        /// This will return a List of Lists of objects like:
        /// {a,b1,c1} {a,b2,c2}
        /// </summary>
        /// <param name="args"></param>
        /// <param name="pi"></param>
        /// <returns></returns>
        private static List<List<object>> GetShortestArguments(FSharpList<Value> args, ParameterInfo[] pi)
        {
            var parameters = new List<List<object>>();

            //find the SMALLEST list in the inputs
            int end = args.Where(arg => arg.IsList).Select(arg => ((Value.List) arg).Item.Count()).Concat(new[] {1000000}).Min();

            BuildParameterList(args, pi, end, parameters);

            return parameters;
        }