Soy nuevo en Scala pero me preguntaba si es posible implementar un analizador de ecuaciones simple en el idioma.Scala - Creación de un analizador básico de funciones dinámicas
Decir que tengo un par de funciones (tanto como las funciones de Excel):
IF(Cond a=b, val_true, val_false)
MID(String, Start_pos, num_chars)
- extracto de cadena
LEN(String)
- longitud de una cadena
OR(cond1, cond2, ... condn)
AND(cond1, cond2, ... condn)
Así que la idea sería que pudiera pasar en una fórmula en tiempo de ejecución como una cadena de un usuario como un argumento de línea de comandos junto con cualquier otro params dicen IF(LEN(param1)=4,MID(param1,2,1), MID(param1,0,LEN(param1)))
La idea es evaluar la función, por lo que si el el usuario proporciona esa fórmula anterior y la cadena "scat", entonces la salida sería "a". Si la cadena "scala" fue dada, entonces la salida sería "scala" ...
¿Qué tan fácil sería implementar esto en Scala? ¿Cuál es el mejor enfoque de diseño? Sé que no hay punteros a función (en C habría analizado la cadena de fórmula en una colección de puntos func y luego de allí) ...
Cualquier consejo sobre cómo abordar esto en un estilo eficiente de Scala sería apreciado.
¡Salud!
Hay _are_ el equivalente de punteros a funciones, a saber, literales de funciones anónimas. –
La idea sería pasar la fórmula y luego hacer qué? Devuelve una función que implementa la fórmula, devuelve un objeto que representa la expresión analizada – huynhjl
Lo siento, esto no es lo suficientemente claro. "Podría pasar una fórmula": ¿cómo? ¿dónde? ¿en tiempo de ejecución? en tiempo de compilación? como código fuente? ¿como cuerda? y ¿esperas que suceda cuando lo pases? Si fuera tú, volvería a escribir toda la pregunta. –