私はいくつかのイベントのいくつかのメトリックを集計するストリーム関数に取り組んでいます。これを行うには、私はproject
機能を使用して、それは次のようになります。リーマンプロジェクト関数の可変引数
(project [(func (:service event) (nth service-list 0))
(func (:service event) (nth service-list 1))
(func (:service event) (nth service-list 2))]
(..))
service-list
を加算しなければならないサービスのベクターを含む周囲の関数の引数です。 func
は、2つの引数をとり、true
/false
を返す関数です。上記のスニペットを使用するとうまくいきますが、3要素より大きいまたは小さいベクトルが機能するように簡略化したいと考えています。
は、これまでのところ私はこれを持っている:私は返します未評価されている関数のベクトルを考える
(project (mapv (fn[service] (
`func (:service event) ~service)
) service-list)))
(..)
。私はproject
がマクロであることを理解すると、このアプローチを行った。私が正しいことをしているかどうかは分かりません...