我试过类似的东西,
let lchars : char ref list = ref [];;
但是没有用...
参数化的OCaml类型是按后缀顺序指定的,所以类型是 char ref list
首先是一个列表。换句话说,它是一个引用 char 的列表。
let (x: char ref list) = [ ref 'a'; ref 'b']
同样的, 类型 char list ref
首先是一个引用。它是对一个chars列表的引用。
let (y: char list ref) = ref ['a'; 'b']
你想要的是第二种类型 但你的代码指定的是第一种类型。
let lchars : char list ref = ref[];;