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)); }
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)); }
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(); }
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()); }
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()); }
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); }
public Datum Evaluate(Datum args) { return args.Enumerate() .Aggregate(Enumerable.Empty<Datum>(), (current, a) => current.Concat(a.Enumerate())) .ToList(); }