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)); }
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)); }
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)); }