Как скомпилировать / оценить выражение Scala во время выполнения?

Новое в Scala и поиск указателей на идиоматическое решение, если оно есть.

Я хотел бы, чтобы к некоторым данным применялись произвольные пользовательские функции Scala (которые могут ссылаться на функции / классы, которые я определил в моем коде).

Например: у меня естьfoo(s: String): String а такжеbar(s: String): String функции, определенные в моемmyprog.scala, Пользователь запускает мою программу так:

$ scala myprog data.txt --func='(s: Str) => foo(bar(s)).reverse'

Это будет проходить строка за строкой через файл данных и выдаст результат применения указанной пользователем функции к этой строке.

Могу ли я убедиться, что в дополнительной функции нет никаких побочных эффектов в определяемой пользователем функции? Если нет, могу ли я ограничить использование функциитолько ограниченный набор функций (которые я могу гарантировать, чтобы быть безопасным)?

Ответы на вопрос(2)

Ваш ответ на вопрос