Tout cela fonctionne bien et m'a fait prendre conscience que je pouvais aller encore plus loin avec une application iOS que je suis en train de faire et une couche serveur qui va pousser encore plus l'analyse. Cette application devrait sortir avant fin mars 2015.
var Calculator = new Evaluator({
variable:function(varName) {
return ...; //Renvoie la valeur de la variable *varName* que le programme gère.
},
callback:function(funcName, args) {
//Exemples d'utilisation
if (funcName == "sqrt") return Math.sqrt(args);
if (funcName == "sin") return Math.sin(args);
if (funcName == "cos") return Math.cos(args);
}
});
//
var Result = Calculator.eval("34-75*3+(4*8*2-4+6%5*2)-12*(15%7-3*2)+7").result;
Pour cela on a besoin de transformer la somme en formule simple, nous allons donc faire une petite digression. Or, puisque on a affaire à une suite de raison 1+t.