clojure, используя список функций - PullRequest
3 голосов
/ 11 августа 2011

Я хотел бы определить список функций для использования в 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) и несколько других вещей, но, похоже, ничего не прилипло.Спасибо!

Ответы [ 2 ]

5 голосов
/ 11 августа 2011

Я думаю, у вас есть правильное решение.Для меня это работает:

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]
5 голосов
/ 11 августа 2011

apply вроде бы нормально работает:

user=> ((juxt sin cos) 4)
[-0.7568024953079282 -0.6536436208636119]
user=> ((apply juxt trig) 4)
[-0.7568024953079282 -0.6536436208636119]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...