wiki:GnappoProduct

Version 1 (modified by gnappo, 18 years ago) (diff)

--

public class GnappoProduct {

private static class SchemeExpressionPower? implements SchemeExpression? {

private SchemeExpression? exp1; private SchemeExpression? exp2; public SchemeExpressionPower?(SchemeExpression? expr1, SchemeExpression? expr2) {

exp1=expr1; exp2=expr2;

} public SchemeValue? evaluate(SchemeEnvironment? env) throws SchemeException? {

return SchemeFactoryManager?.instance().create("SchemeExpressionInt?",

((int)(Math.pow(exp1.evaluate(env).asInt(),exp2.evaluate(env).asInt())))).evaluate(env);

} public void prettyPrint(PrintStream? out) {

out.print("(pow "); exp1.prettyPrint(out); out.print(" "); exp2.prettyPrint(out); out.print(")");

}

}

/

public static void main(String[] args) throws SchemeException? {

TODO Auto-generated method stub SchemeFactoryManager? fm = SchemeFactoryManager?.instance(); fm.put("pow", new SchemeFactory?() {

public SchemeExpression? create(Object... args) {

return new SchemeExpressionPower?((SchemeExpression?)args[0],(SchemeExpression?)args[1]);

}

}); SchemeExpression? power = fm.create("pow",fm.create("SchemeExpressionInt?",2),fm.create("SchemeExpressionInt?",4)); power.prettyPrint(System.out); System.out.println(); System.out.print(power.evaluate(null));

}

}