2

我想知道 Clojure 中是否有将多个单参数函数组合成一个接受向量的新函数的习语。新函数应该将第一个函数应用于第一个参数,依此类推。

我认为这在许多情况下都很有用。例如,您可能希望使用更简单的一维函数来变换点的 x、y 和 z 坐标。

我将自己实现如下,但恐怕它应该已经存在于标准 API 中。

(defn vector-comp [& fns]
  (fn [avect]
    (vec (map #(%1 %2) fns avect))))
4

2 回答 2

1

其他写法:

(defn vector-comp [& fns]
    #(map apply fns % (repeat nil)))

我 99% 确定标准库中没有现成的解决方案(juxt我知道的最接近的解决方案)

于 2012-04-26T15:24:43.707 回答
1

https://github.com/flatland/useful/blob/develop/src/useful/fn.clj#L90

于 2012-04-26T17:59:12.327 回答