Exemplo n.º 1
0
        public override ApplyResult Apply(object[] args)
        {
            var list = args
                       .OfType <T>()
                       .ToList();
            var seed = _seedFunc(list[0], list.Count);

            return(ApplyResult.From(list.Skip(1).Aggregate(seed, _aggrFunc)));
        }
Exemplo n.º 2
0
        public override ApplyResult Apply(object[] args)
        {
            if (args.Length < _parameters.Length)
            {
                var msg = String.Format("Expected {0} arguments, actual: {1}", _parameters.Length, args.Length);
                return(new ApplyResult(msg));
            }
            Debug.Assert(args.Length >= _parameters.Length);
            var newEnv = _scmEnvironment.Extend();

            for (int i = 0; i < _parameters.Length; i++)
            {
                newEnv.Add(_parameters[i], args[i]);
            }
            var se = _scmExpression.Eval(newEnv).Value as SelfEvaluatingExpression;

            return(ApplyResult.From(se.Value));
        }
Exemplo n.º 3
0
 public override ApplyResult Apply(object[] args)
 {
     return(ApplyResult.From(_func((TArg)args[0], (TArg)args[1])));
 }