|
@@ -7,6 +7,7 @@ import java.util.Map;
|
|
|
import migl.lisp.operator.ComparatorOperator;
|
|
|
import migl.lisp.operator.ConsOperator;
|
|
|
import migl.lisp.operator.DefineOperator;
|
|
|
+import migl.lisp.operator.MathOperator;
|
|
|
import migl.lisp.operator.MinMaxOperator;
|
|
|
import migl.util.ConsList;
|
|
|
|
|
@@ -29,6 +30,9 @@ public class LispEval {
|
|
|
operators.put("=", new ComparatorOperator());
|
|
|
operators.put("min", new MinMaxOperator());
|
|
|
operators.put("max", new MinMaxOperator());
|
|
|
+ operators.put("cbrt", new MathOperator());
|
|
|
+ operators.put("ceil", new MathOperator());
|
|
|
+ operators.put("floor", new MathOperator());
|
|
|
operators.put("quote", (op, lisp) -> {
|
|
|
if(lisp.size() != 1) {
|
|
|
throw new LispError(LispError.ERR_NUM_ARG);
|
|
@@ -149,18 +153,6 @@ public class LispEval {
|
|
|
}
|
|
|
return LispElement.generate(Math.abs(le.toNumber()));
|
|
|
});
|
|
|
- operators.put("cbrt", (op, lisp) -> {
|
|
|
- if(lisp.size() != 1) {
|
|
|
- throw new LispError(LispError.ERR_NUM_ARG);
|
|
|
- }
|
|
|
- return LispElement.generate(Math.cbrt(LispElement.getElement(lisp.car()).toNumber()));
|
|
|
- });
|
|
|
- operators.put("ceil", (op, lisp) -> {
|
|
|
- if(lisp.size() != 1) {
|
|
|
- throw new LispError(LispError.ERR_NUM_ARG);
|
|
|
- }
|
|
|
- return LispElement.generate(Math.ceil(LispElement.getElement(lisp.car()).toNumber()));
|
|
|
- });
|
|
|
}
|
|
|
|
|
|
private Object lispElt = null;
|