以下流程的更好的习语

时间:2013-03-03 12:43:58

标签: clojure

我有一段代码如下 -

        (future
          (
            (comp
             (fn [data]
               (service/parse srv data))
             (fn []
               (service/fetch srv))
            )))

基本上有两个函数fetchparse我将来必须调用它们。 fetch函数使用parse的结果。不知怎的,上面似乎很冗长,因为我必须创建匿名函数,以便我可以comp它们然后使用extra()来执行comped函数。

有没有更好的方法来实现上述目标?

2 个答案:

答案 0 :(得分:2)

我认为srv是某个url或Var中定义的其他对象?你的代码不清楚。无论如何,相当于:

(future
  (let [data (service/fetch srv)]
    (service/parse srv data)))

或只是

(future
  (service/parse srv (service/fetch srv)))

我希望您可以重构parse,因此它不依赖于srv,但我没有足够的信息来确定您的问题。

答案 1 :(得分:2)

(future
    (->> (service/fetch srv)
         (service/parse srv)))