如何在OCaml中创建具有多个参数的类型?

时间:2009-12-01 14:46:50

标签: types polymorphism ocaml

我正在尝试创建一个具有多个类型参数的类型。我知道如何用一个参数创建一个类型:

type 'a foo = 'a * int

但我需要有两个参数,以便我可以参数化'int'部分。我怎么能这样做?

2 个答案:

答案 0 :(得分:8)

这样做的方法是:

type ('a, 'b) foo = 'a * 'b

类型参数不是curry,因此您需要以元组形式提供它们作为单个参数。一个很好的例子是Hashtbl模块:

type ('a, 'b) t 
     

类型'a'的哈希表类型   输入'b。

答案 1 :(得分:2)

# type ('a, 'b) couple = 'a * 'b ;;

例如......