Clojure嵌套Let的最佳实践

let按以下方式使用嵌套Clojure是一种好习惯,还是会造成混淆?

(defn a-fun [config]
  (let [config (-> config (parse) (supply-defaults))]
  ;; do something with config
  ))

我注意到我在与外界交流的输入函数中经常使用这种模式来解析/检查/验证事物(在这种情况下,Clojurescript库公开了公共函数,但是我也有同样的Compojure路由)。

是否令人困惑,因为人们必须了解绑定可见性的规则(不确定确切的措辞是什么)?

惯用的方法是什么?更改config名称为parsed-config,将其放在另一个函数中,完全不一样吗?

缩图

我会在这个习语时达到

  • 重新绑定是一样的事情,
  • 您想弄清楚本地绑定取代了全局绑定。

例如

(defn fact [n]
  (loop [n n, answer 1]
    (if (pos? n)
      (recur (dec n) (* answer n))
      answer)))

就像我很容易做的那样,这也阻止了您偶然使用全局绑定。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章