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的酷之处在于我们可以都有自己的首选语法。 :)
...