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的一个有趣之处在于我们可以有我们喜欢的语法。 :)
...