2016-11-07 12 views
6

私はプロジェクトで作業しています。エンティティと属性を作成するための非常にコンパクトなメソッドを作成したいと思います。F#での機能とパイプライン演算子の結合

パイプライン演算子でこれを行いたいと思います。しかし、私はこの演算子に特別な機能を追加したいと思います。例えば同様

:この例では

let entity = (entity "name") 
       |>> (attribute "attr" String) 
       |>> (attribute "two" String) 

は| >>エンティティに属性を追加するための機能と一緒に、パイプライン演算子だろう。

私はこれが機能することを知っている:

let entity = (entity "name") 
      |> addAttr (attribute "attr" String) 

それは

|>> 

で助けてくれてありがとうを

|> addAttr 

を交換することが可能ですのであれば、私が知りたいことは、ある

(私はしませんこれは、ことも可能である場合は、単にこのようにそれを定義することができ

答えて

9

)を知っている:

let (|>>) e a = e |> addAttr a 
+0

ありがとうございました! – BrechtL

4

読みやすくするために、私は強く簡単な関数がどうなるときにカスタム演算子を追加する思いとどまらでしょう。 addAttrがパイプラインでの使用を容易にする方法を変更することができます。

let addAttr name attrType entity =() // return an updated entity 

let e = 
    entity "name" 
    |> addAttr "attr" String 
    |> addAttr "two" String 
+1

あなたはポイントがあります、私はまだ別の可能性を探しています。そのうちの1つはカスタムオペレーターになり、もう1つはあなたが述べた方向に何かになります。 – BrechtL

関連する問題