示例#1
0
            public Datum Evaluate(Datum args)
            {
                var methodArgs = unwrap(args.Enumerate());
                var method     = type.GetRuntimeMethods().First(e => e.Name.Equals(methodName));
                var result     = method.Invoke(null, methodArgs);

                return(result == null ? Null.Instance : DatumHelpers.atom(result));
            }
示例#2
0
            public Datum Evaluate(Datum args)
            {
                var methodArgs = unwrap(args.Enumerate());
                var result     = type.InvokeMember(methodName,
                                                   BindingFlags.Public | BindingFlags.InvokeMethod | BindingFlags.Static,
                                                   null, null, methodArgs);

                return(result == null ? Null.Instance : DatumHelpers.atom(result));
            }
示例#3
0
            public Datum Evaluate(Datum args)
            {
                var argArray = args.ToArray();

                var target = unwrapDatum(argArray[0]);
                var methodArgs = unwrap(args.Enumerate().Skip(1));
                var result = target.GetType().InvokeMember(name, BindingFlags.Default | BindingFlags.InvokeMethod, null, target, methodArgs);
                return result.ToAtom();
            }
示例#4
0
            public Datum Evaluate(Datum args)
            {
                var argArray = args.ToArray();

                var target     = unwrapDatum(argArray[0]);
                var methodArgs = unwrap(args.Enumerate().Skip(1));
                var result     = target.GetType().InvokeMember(name, BindingFlags.Default | BindingFlags.InvokeMethod, null, target, methodArgs);

                return(result.ToAtom());
            }
示例#5
0
            public Datum Evaluate(Datum args)
            {
                var argArray = args.ToArray();

                var target     = unwrapDatum(argArray[0]);
                var methodArgs = unwrap(args.Enumerate().Skip(1));
                var method     = target.GetType().GetRuntimeMethods().First(e => e.Name.Equals(methodName));
                var result     = method.Invoke(target, methodArgs);

                return(result.ToAtom());
            }
 public static Datum[] ToArray(this Datum list)
 {
     return(list.Enumerate().ToArray());
 }
示例#7
0
 public Datum Evaluate(Datum args)
 {
     return(args.Enumerate()
            .Aggregate(Enumerable.Empty <Datum>(), (current, a) => current.Concat(a.Enumerate()))
            .ToList());
 }
 public Datum Evaluate(Datum args)
 {
     var methodArgs = unwrap(args.Enumerate());
     var result = type.InvokeMember(methodName,
                                    BindingFlags.Public | BindingFlags.InvokeMethod | BindingFlags.Static,
                                    null, null, methodArgs);
     return result == null ? Null.Instance : DatumHelpers.atom(result);
 }
示例#9
0
 public Datum Evaluate(Datum args)
 {
     return args.Enumerate()
         .Aggregate(Enumerable.Empty<Datum>(), (current, a) => current.Concat(a.Enumerate()))
         .ToList();
 }