package sandboxModel2; /*Generated by MPS */ import jetbrains.mps.samples.lambdaCalculus.runtime.Function; import java.util.List; import java.util.ArrayList; public class first { public first() { } public static void main(String[] args) { System.out.println((eval())); } public static Object eval() { return lambdaAbstr_816130369292799546(3); } public static class Function_816130369292799568 extends Function { private List myOuterVars = new ArrayList(); public Function_816130369292799568() { myType = "(number->(number->number))"; } public Function_816130369292799568(List outerVars) { myType = "(number->(number->number))"; myOuterVars.addAll(outerVars); } public Object eval() { int i = 0; int j = 0; Integer y = (Integer) myArgs.get(i++); Integer z = (Integer) myArgs.get(i++); return (y + z) * (y + z); } public int getParamsCount() { return 2; } public Function copy() { return new first.Function_816130369292799568(myOuterVars); } } public static Integer lambdaAbstr_816130369292799546(Integer x) { return (Integer) let_816130369292799560(new first.Function_816130369292799568(), x); } public static Object let_816130369292799560(Function sum_sq, Integer x) { return lambdaAbstr_816130369292799665(x, x, sum_sq); } public static Integer lambdaAbstr_816130369292799665(Integer a, Integer x, Function sum_sq) { return (Integer) ((Function) sum_sq.copy()).apply(2, x) - a; } }