예제 #1
0
        internal override PartialResult PartialEval(PartialEnvironment environment)
        {
            PartialClosure<SimpleLambda> closure = new PartialClosure<SimpleLambda> (this, environment);

            SCode pbody = this.lambdaBody.PartialEval (new PartialSimpleEnvironment (closure)).Residual;

            return new PartialResult (Lambda.Make (this.lambdaName, this.lambdaFormals, pbody, this.lambdaFreeVariables, closure.StaticMap));
        }
예제 #2
0
        internal override PartialResult PartialEval(PartialEnvironment environment)
        {
            PartialClosure<StandardExtendedLambda> closure = new PartialClosure<StandardExtendedLambda> (this, environment);

            SCode pbody = this.lambdaBody.PartialEval (new PartialStandardExtendedEnvironment (closure)).Residual;

            return new PartialResult (new StandardExtendedLambda (this.lambdaName, this.lambdaFormals, pbody,
                this.required, this.optional, this.rest,
                this.lambdaFreeVariables, closure.StaticMap));
        }
예제 #3
0
        internal override PartialResult PartialEval(PartialEnvironment environment)
        {
            PartialClosure<ConstantLambda> closure = new PartialClosure<ConstantLambda> (this, environment);

            SCode pbody = this.lambdaBody;

            return new PartialResult (Lambda.Make (this.lambdaName, this.lambdaFormals, pbody, this.lambdaFreeVariables, closure.StaticMap));
        }