我想定义一个在juxt中使用的函数列表,但是我在实现它时遇到了麻烦。
以下是我想要的一个例子:
(defn sin [n] (Math/sin n))
(defn cos [n] (Math/cos n))
((juxt sin cos) 4)
>> [-0.7568024953079282 -0.6536436208636119]
现在我不想说((juxt sin cos) 4)
而是说((juxt trig) 4)
在哪里
(def trig [sin cos])
。我尝试了((apply juxt trig) 4)
和其他一些事情,但似乎没有什么可以坚持下去。谢谢!
答案 0 :(得分:5)
apply
似乎工作正常:
user=> ((juxt sin cos) 4)
[-0.7568024953079282 -0.6536436208636119]
user=> ((apply juxt trig) 4)
[-0.7568024953079282 -0.6536436208636119]
答案 1 :(得分:5)
我认为你有一个正确的解决方案。对我来说它有效:
Clojure 1.2.1
user=> (defn sin [n] (Math/sin n))
#'user/sin
user=> (defn cos [n] (Math/cos n))
#'user/cos
user=> (def trig [sin cos])
#'user/trig
user=> ((apply juxt trig) 4)
[-0.7568024953079282 -0.6536436208636119]