clojure - 管理 clojure 中的括号数量

标签 clojure lisp readability code-readability

我是 clojure 的新手,我遇到的主要问题是编写可读代码。我经常以如下所示的函数结束。

(fn rep 
  ([lst n]
    (rep (rest lst)
    n
    (take n 
      (repeat (first lst)))))
  ([lst n out]
    (if
      (empty? lst)
      out
      (rep 
        (rest lst) n
        (concat out (take n 
          (repeat 
            (first lst))))))))

有很多结束括号的组合。减少这种情况或以更容易发现缺失括号的方式对其进行格式化的最佳方法是什么?

最佳答案

使用 Emacs 的 paredit 模式(也在其他一些编辑器中模拟)意味着您通常 - 除非您使用鼠标复制/粘贴/强制非结构化选择 - 处理匹配的括号/大括号/括号和相关缩进,无需计数。

Emacs https://github.com/technomancy/emacs-starter-kit (强烈推荐!)默认情况下为 clojure 启用了 paredit。否则,请参阅 http://emacswiki.org/emacs/ParEdit

关于clojure - 管理 clojure 中的括号数量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10095264/

相关文章:

lisp - Racket中 `parameterize'和 `let'的求值顺序是怎样的?

c# - 为什么 C# 不接受 bool 运算符作为单词 ("and", "or", "not",..etc) 与当前运算符?

Clojure 和 ZeroMQ

lisp - 如何使用 SBCL sb-alien 创建一个 Gtk4 窗口打开它并有一个有效的简单回调?

emacs - 如何评估 Emacs init.el 文件中的某些内容?

Lisp 可分性

javascript - 在 JavaScript 中编写嵌套函数的最易读的方法是什么?

c# - foreach(... in ...) 或 .ForEach();就是那个问题

clojure - Clojure函数(第n个[coll索引])和组合(last(取索引coll))有什么区别

Clojure 系列 def,但不向外部范围公开所有这些