Types 如何为可变变量定义特定类型?
我是OCaml的初学者。我想编译这段代码,但我得到了一个错误Types 如何为可变变量定义特定类型?,types,ocaml,mutable,ref,Types,Ocaml,Mutable,Ref,我是OCaml的初学者。我想编译这段代码,但我得到了一个错误 类型pointeur_de_code=int;; 类型environnement=int;; 类型mlvalue= |int的Ml1 |pointeur_de_代码*环境的Ml2;; let(累计:mlvalue)=参考0;; 此表达式的类型为int ref,但表达式的类型应为mlvalue 定义变量类型(如mlvalue时,为该类型的值定义构造函数。您有一个名为Ml1的构造函数,它接受int并生成一个值。您有一个名为Ml2的构造函
类型pointeur_de_code=int;;
类型environnement=int;;
类型mlvalue=
|int的Ml1
|pointeur_de_代码*环境的Ml2;;
let(累计:mlvalue)=参考0;;
此表达式的类型为int ref,但表达式的类型应为mlvalue
定义变量类型(如
mlvalue
时,为该类型的值定义构造函数。您有一个名为Ml1
的构造函数,它接受int
并生成一个值。您有一个名为Ml2
的构造函数,它接受两个int
s并生成一个值
要生成该类型的值,需要包含构造函数
此外,accu
的类型不能是mlvalue
。它必须是不同类型的mlvalue ref
let accu : mlvalue ref = ref (Ml1 0)
(请注意,您不需要提供accu
的类型。OCaml将为您推断类型。)