gpt4 book ai didi

functional-programming - 寻找基于 YAML 的函数式语言

转载 作者:行者123 更新时间:2023-12-05 05:27:29 24 4
gpt4 key购买 nike

我正在寻找一种将数据描述(如 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 为目标,但据我所知,可能有更接近我需要的东西。有什么建议吗?

最佳答案

Clojure是最合适的。

  • map 和列表的紧凑语法 - 是
  • 纯函数式 - 不像 Haskell 那样纯,但足够函数式
  • 词法作用域 - 是
  • 无 OOP - 这是从头开始编写代码库时的首选架构
  • 一流的功能 - 是
  • 类型推断 - 支持类型提示的动态类型系统
  • 可从 AST 编译 - Clojure 语法几乎从 AST 开始
  • 可编译为 JVM 字节码 - 是

我认为它比 Scala 更合适,原因如下:

  • 更实用,更少面向对象的风格
  • 更紧凑的 map 和列表语法
  • 语法更接近 AST,更容易解析

关于functional-programming - 寻找基于 YAML 的函数式语言,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19370440/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com