Ocaml匹配模式组合

时间:2017-07-26 11:29:59

标签: ocaml

我一直在努力解决这个问题。我有一个可以组合的匹配模式。例如,在下面的代码中:

let  processoperatorchange t2s proc op op2=
  let rec poc p = match p with
    | Zero ->  "0"
    | In(chan, var, _, p, _) -> chan^"("^var^")"^op2^(poc p) 
    | Out(chan, value, p, _) -> chan^"<"^(v2s value)^">"^op^(poc p)

可能是InOut出现在一个实例中。有没有办法可以说

let  processoperatorchange t2s proc op op2=
  let rec poc p = match p with
    | Zero ->  "0"
    **| In(chan, var, _, p, _) && Out(chan, value, p, _) -> chan^("^var^")"^op2^(poc p)** 
    | Out(chan, value, p, _) -> chan^"<"^(v2s value)^">"^op^(poc p)

1 个答案:

答案 0 :(得分:0)

将Lhooq的评论提升为答案:

也许你应该添加一个构造函数InOut和一个构造函数InTimer