请在 2024年Clojure现状调查 中分享您的想法!

欢迎!请参阅 关于 页面以获取更多关于如何使用本站的信息。

0 投票

对于诸如map、filter、find等函数,通常会有一个单参数的lambda函数。

我认为可以有一个宏,它能执行类似于 (fn-> :value inc (> 1))的操作,这等同于 #(-> % :value inc (> 1))

类似于下面这样:

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

我认为如果在核心库中有这样的宏,则会非常有利于代码的可读性。你怎么看?

1 答案

0 投票

在您的线程表达式前面直接放置 # 它不是更短吗?

不是这样的,
对于我来说,看起来更易于阅读、无声且简单,
但我知道这可能是仅仅是个人的观点。
by
我认为将此添加到Clojure本身并无太多兴趣。但Clojure和Lisp的酷之处在于我们可以有自己的首选语法。:)
...