在 OCaml 中返回一个类型

Returning a type in OCaml

我试图添加两个列表,但想到了使用类型。

type x = int list; 

let add (elem1 : int) (elem2 :int) =
    elem1 + elem2;;

let add2Lists (a : x) (b : x) =
    List.map2 add a b;;

令人惊讶的是,add2Lists returns : x -> x -> int 列表。我知道 int 列表本质上与类型相同,但我如何让 add2Lists 逐字计算为 x 类型的值?

添加类型约束:

let add2Lists (a : x) (b : x) : x =
   List.map2 add a b;;

供您参考,函数没有 return 类型,它们 return(实际上,求值为)某种类型的值(可能取决于参数的类型)。因此,您的问题应该按照 "how do I make add2Lists literally evaluate to values of type x?" 或者更准确地说,"how do I make the reported result type of add2Lists be literally x?"