我正在寻找一种将数据描述(如 YAML 或 JSON)与基本脚本功能(例如变量、条件表达式、回调函数)混合在一起的语言。描述列表和映射的层次结构的东西,如 YAML,但叶值是函数而不是文字数据。
到目前为止,我一直在通过在 YAML 之上添加表达式逻辑来解决这个问题。这让我可以在现有的解析器上构建,但它也会导致非常尴尬的语法,我必须自己实现它的编译器/解释器方面。我不认为我有能力做到这一点。
另一种方法是采用现有语言的某个子集,这样我就可以构建一个真正的编译器。遗憾的是,我并不精通任何函数式编程语言。老实说,我不知道从哪里开始。
任何人都可以建议一种具有部分或全部这些属性的函数式语言:
compact syntax for expressing hierarchical lists and maps
pure functional
lexical scoping
no OOP (using maps rather than static compound types)
first class functions (primary data structures will be lists/maps of functions)
type inference
compilable from an AST (if I have to write my own parser)
compilable to JVM bytecode (it would make my life a lot easier)
Scala 是一个显而易见的选择,因为它以 JVM 为目标,但据我所知,那里可能有更接近我需要的东西。有什么建议么?