0

次のようなコードがあります-

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

基本的に 2 つの関数がありfetchparse将来呼び出す必要があります。の結果は関数fetchによって使用されparseます。どういうわけか、上記は冗長に見えます。匿名関数を作成してcomp、追加の () を使用して comped 関数を実行できるようにする必要があるためです。

上記を達成するためのより良い方法はありますか?

4

2 に答える 2

2

srvVarで定義されたURLまたはその他のオブジェクトがあると思いますか?あなたのコードからは不明です。とにかく、同等:

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

または単に

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

parseに依存しないようにリファクタリングできると思いますがsrv、問題に関する十分な情報がありません。

于 2013-03-03T13:11:27.933 に答える
2
(future
    (->> (service/fetch srv)
         (service/parse srv)))
于 2013-03-03T16:03:33.353 に答える