在 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
?"
我试图添加两个列表,但想到了使用类型。
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
?"