如何在OCaml中为GADT定义映射函数?

时间:2014-09-17 21:08:35

标签: map functional-programming ocaml generic-programming gadt

我试图在OCaml语言中研究GADT的可能性,并尽可能地定义映射函数应该对这些类型做什么。不幸的是,我没有设法完成下面示例中类型的映射函数的定义。可以找到此示例的全文here。如果有任何帮助,我将不胜感激。谢谢大家。

type ('a, _) expr =
  | Const : 'a -> ('a, 'a) expr
  | Add : ('a, 'a) expr * ('a, 'a) expr -> ('a, 'a) expr
  | Less : ('a, 'a) expr * ('a, 'a) expr -> ('a, bool) expr
  | Not : ('a, bool) expr -> ('a, bool) expr
  | If : ('a, bool) expr * ('a, 'a) expr * ('a, 'a) expr -> ('a, 'a) expr

0 个答案:

没有答案