短手OCaml“类型平等”

时间:2013-09-12 16:32:21

标签: ocaml

是否有一个可以像这样实现的函数的简写OCaml表示法:

match e with
  Mycons ( _ ) -> true
  | _ -> false

我在想typeof(e) == Mycons,但我还没有找到任何东西。

2 个答案:

答案 0 :(得分:6)

我经常想要这样的东西,虽然“类型相等”并不是一个好名字(恕我直言)。 Mycons是一个值构造函数;它代表的是一种不是类型的价值。对于nullary构造函数,您可以使用((=) None)之类的东西,但除此之外我还没有找到更简洁的方法来编写它。

答案 1 :(得分:4)

有一个较短的符号:

let isMycons a = function | Mycons(_) -> true | _ -> false

是一个单一的班轮,像匹配一样优雅。