2024 Clojure状态调查!中分享您的想法。

欢迎!请查看关于页面获取更多关于如何使用本网站的信息。

0

常常会有一些单参数的lambda函数,用于map、filter、find等。

我认为一个可以做到类似于(fn-> :value inc (> 1))的宏会很有用,它与#(-> % :value inc (> 1))等价。

类似于

(defmacro fn->
  [& forms]
  `(fn [x#] (-> x# ~@forms)))
(defmacro fn->>
  [& forms]
  `(fn [x#] (->> x# ~@forms)))

我认为这如果是核心库的一部分的话将非常有助于可读性。您怎么看?

1 答案

0

在您的线程表达式中直接在开头放置#不更简短吗?

不是的,
对我来说看起来更易读,无声且简单,
但我知道这可能是个人观点。
我认为没有必要将它添加到Clojure本身中。但Clojure和Lisps的酷处在于我们可以有我们自己的首选语法。 :)
...