I持っている2つのネストされた差別組合:F番号:労働組合を区別して一致する入れ子
type ServiceTypes =
| Contexts
| Context of int
| Producers
type ServiceActions =
| Get of ServiceTypes
| Update of ServiceTypes
とネスト一致ステートメント:
let s_action = match action with
| Get(stype) -> sprintf "Get%s" (match stype with
| Contexts -> sprintf "Contexts"
| Context(id) -> (sprintf "Context/%d" id))
| _ -> raise (RequestException("get"))
| Update(stype) -> sprintf "Update%s" (match stype with
| Producers -> (sprintf "Producers")
| _ -> raise (RequestException("update")))
目標は、呼び出しはのように見えるとのリクエスト文字列を構築することです
そのreq.Send(Update Producers)
。私は、このルールは最初match stype
Iに
Update(stype)
上
- :とにかく、私は理解していない理由で は、コンパイラは私に2回の警告を与えますget この式で不完全なパターンが一致します。たとえば、値「プロデューサーズ」は、パターンによってカバーされていないケースを示すことがあります。
なぜこの2つの警告が表示されるのですか?私はマッチングの仕方で何かを忘れましたか?
Arf ...私はパターンマッチングを理解していないと思った:P少なくともそれはただの文法ミスだった。余分な括弧を取り除く方法についての素晴らしいデモ(私はコードを更新しました)。あなたのお時間をありがとうございました! –