【问题标题】:What's the "revised syntax" in OCaml?OCaml 中的“修改后的语法”是什么?
【发布时间】:2011-02-24 10:40:15
【问题描述】:

当人们提到 OCaml 中的“修订语法”时,他们的意思是这将成为该语言的新语法,还是只是在 CamlP4 中创建的替代语法?如果是前者,那么“修改后的语法”什么时候成为 OCaml 的“官方语法”?

【问题讨论】:

    标签: ocaml camlp4


    【解决方案1】:

    修改后的语法只是在Camlp4/5中实现的alternative to the original(Camlp5中还有一个Lisp syntax)。有些人更喜欢它,但我不鼓励你使用它,因为它只会让你的代码对其他 OCaml 程序员更加困惑。在编写 Camlp4/5 扩展时了解修改后的语法很有价值——修改后的语法用于模式和重写,可能是因为它比原来的更一致。

    据我所知,没有计划用修改后的语法替换原来的 OCaml 语法。

    【讨论】:

    • “但我不鼓励你使用它,因为它只会让你的代码对其他 OCaml 程序员更加混乱” - 他,那么你最好完全不鼓励使用 ocaml,因为它会混淆很多更多的人 :))。无论如何,您可以使用原始语法编写引文,但有些情况无法以原始语法表达,因此通常首选修订版本。至于通常的编程 - 修改后的语法对于新手来说可以说更合乎逻辑和更容易(这就是它存在的原因) - 没有很多原始语法的歧义。
    • ygrek,我没有说明哪种语法更好。我确实认为像 OCaml 这样的中小型社区应​​该努力避免方言碎片化。
    • 反对修改语法的另一点:糟糕的(er)编辑器支持。据我所知,Tuareg 和 Vim 的 OCaml 工具都不支持它。
    • 我没有认真研究 OCaml 的一个原因是因为那个愚蠢的旧语法。来吧;;?
    【解决方案2】:

    这只是一种替代的具体语法。我认为这只是为了展示 camlP4 的强大功能,一种概念证明。

    【讨论】:

    • 它不是概念证明——它涵盖了语言的所有特性,就像原始语言一样。
    • 这只是证明您可以拥有几种具体语法的概念。这就是我的意思……因为我认为实际上没有多少人在使用修改后的语法。
    猜你喜欢
    • 2016-08-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-04-10
    • 2018-06-28
    • 1970-01-01
    相关资源
    最近更新 更多