【发布时间】:2016-06-19 03:18:46
【问题描述】:
从Scheme背景学习Clojure,我的直觉是编写如下代码:
(defn my-func [data]
(let [right (:right data)
left (:left data)]
... body ... ))
但是,我很快就被告知模式匹配是 Clojure(或者实际上是 Haskell 和 Scala)的一大特点,所以我觉得有必要写:
(defn my-func [ {:keys [right left] } ]
... body ...)
所以我的代码现在充斥着这种类型的语法。不知怎的,我不喜欢它。我发现我的代码看起来不那么吸引人,甚至可能更不可读(但这可能是由于缺乏惯用的 Clojure 经验,所以随着时间的推移它会变得更好)。
所以我想问,使用一种风格而不是另一种风格有根本原因吗?例如,编译器是否生成字节码,这在第二种情况下效率更高。或者还有其他我应该注意的原因吗?
【问题讨论】:
标签: clojure