Version 2 (modified by 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(")");}
}
- /**
- @param args
- @throws SchemeException
*/
- 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));
}
}