Я новичок в Scala, но мне интересно, можно ли реализовать простой анализатор уравнений в язык.
Скажем, у меня есть несколько функций (очень похожих на функции Excel):
IF(Cond a=b, val_true, val_false)
MID(String, Start_pos, num_chars)
- извлечение строки
LEN(String)
- длина строки
OR(cond1, cond2, ... condn)
AND(cond1, cond2, ... condn)
Таким образом, идея была бы в том, что я мог бы передавать формулу во время выполнения в виде строки от пользователя в качестве аргумента командной строки вместе с любыми другими параметрами, например IF(LEN(param1)=4,MID(param1,2,1), MID(param1,0, LEN(param1)))
Идея состоит в том, чтобы вычислить функцию, поэтому, если пользователь введет приведенную выше формулу и строку "scat", то результатом будет "a". Если бы была дана строка "scala", вывод был бы "scala"...
Насколько легко это было бы реализовать на Scala? Каков наилучший подход к дизайну? Я знаю, что указателей на функции не существует (в C я бы разобрал строку формулы в набор функциональных точек и ушел оттуда)...
Любые советы о том, как подойти к этому в эффективном стиле Scala, будут оценены.
Ура!