나는 그것이 능력을 구성하는 것, 특히 때문에, 사용 juxt을 말할 것이다 :
juxt
는 1 개 이상의 인수가 기능에서 작동합니다.
이
(defn reverse-map
[fcoll & args]
(map apply fcoll (repeat args)))
=> (reverse-map [inc dec str] 1)
(2 0 "1")
=> (reverse-map [*/-] 6 2)
(12 3 4)
좋아, 아이디어에 던져, 여기에 같은과 버전이다 : 그러나 두 게으른지도와 반복을 사용 polyadic 기능에 대한 역방향 맵의 간단한 버전은 다음과 같을 것 juxt의 합성 가능성. 그리고 그것은 심지어 be lazy 것 같습니다!
(defn lazy-juxt
[& funs]
(fn [& args]
(map apply funs (repeat args))))
=> ((juxt inc dec str) 1)
[2 0 "1"]
=> ((lazy-juxt inc dec str) 1)
(2 0 "1")
=> ((juxt */-) 6 2)
[12 3 4]
=> ((lazy-juxt */-) 6 2)
(12 3 4)
(juxt */-)도 마찬가지입니다. – NielsK
@NielsK 맞습니다. 요청자가 요청한대로 함수의 순서를 "재미있게 맵핑"하는 데 사용하는 방법을 보여주기 위해 신청서를 남겼습니다. –