【问题标题】:Is there any program to add brackets of Clojure?有没有添加Clojure括号的程序?
【发布时间】:2012-03-31 04:57:06
【问题描述】:

当我在学习某些语言的 Clojure 时,语法的可读性和方便性是最重要的问题(也许这是错误的..)。
所以,Clojure 非常吸引我,但可能需要维护很多括号。
而且我正在考虑是否有一个脚本,我可以使用它编写不带括号的代码,然后将其编译为 Clojure,那应该会更好。目前有这样的计划吗?
(一旦告诉Scheme 有缩进语法,那就太好了。Clojure 怎么样?)

【问题讨论】:

    标签: syntax clojure syntactic-sugar


    【解决方案1】:

    通常您使用会为您处理括号的编辑器或 IDE。

    具有“彩虹括号”特别有用,即括号被赋予不同的颜色以匹配它们的嵌套级别,因此您可以快速查看它们是如何排列的。

    一些选项:

    • Eclipse 的逆时针插件 - 如果您已经是 Eclipse 用户,如果您想混合使用 Clojure 和 Java 代码,那就太好了。
    • Emacs - Lisp 程序员的常见选择。有一套非常好的用于 Emacs 的 Clojure 工具

    请注意,一般来说,由于简洁,Clojure 代码使用括号比等效的 Java 代码少

    【讨论】:

      【解决方案2】:

      一旦你习惯了括号,它们实际上变得比 Java 代码更容易阅读。对可读性更重要的是适当的缩进。任何体面的 IDE 都会为您纠正代码块的缩进。

      但是,您可能会发现宏可以满足您的需求。例如,线程宏 (->) 或 .. 宏。您可以为更具体的目的编写自己的宏。

      这是一个例子:

      user=> (str (inc (Integer/parseInt "10"))) “11”

      可以改写为 user=> (-> "10" Integer/parseInt inc str) “11”

      节省了两个paren-pairs!哇!

      回到你最初的问题,如果你可以在给定的情况下用更少的括号编写明确的代码,那么应该可以编写一个宏来将更少的括号语法扩展为真正的 Clojure。你有一个你正在寻找的例子吗?

      【讨论】:

      • srfi.schemers.org/srfi-49/srfi-49.html> 或多或少像这个。只需使用缩进来替换一些括号。
      猜你喜欢
      • 1970-01-01
      • 2021-09-21
      • 1970-01-01
      • 1970-01-01
      • 2018-10-01
      • 1970-01-01
      • 1970-01-01
      • 2018-11-21
      • 1970-01-01
      相关资源
      最近更新 更多