多种参数类型

时间:2010-05-25 03:37:26

标签: ocaml

我正在尝试写这样的东西:

type 'a 'b xxx = {aaa: 'a: bbb: 'b: ccc: int};;

它无法编译。它只是语法错误,还是它们不允许类型上有多个参数?那为什么?

3 个答案:

答案 0 :(得分:15)

在ML中,多个类型参数写在括号之间并用逗号分隔,如下所示:

type ('a,'b) xxx = {aaa: 'a; bbb: 'b; ccc: int; }

答案 1 :(得分:4)

实际上你可以用修改后的语法这样写:

        Objective Caml version 3.11.2

# #load "dynlink.cma";;
# #load "camlp4r.cma";;
    Camlp4 Parsing version 3.11.2

# type xxx 'a 'b = { aaa : 'a; bbb: 'b; ccc: int};
type xxx 'a 'b = { aaa : 'a; bbb : 'b; ccc : int }

答案 2 :(得分:1)

类型参数在manual中定义为:

type-params ::= type-param | ( type-param  { , type-param } )  

因此,对于类型参数列表,它是括在括号内的逗号分隔列表。