我正在尝试使用以下代码片段在OCaml中创建一堆元组
let (k : (string*string) Stack.t) = Stack.create ;;
但是当这样做时,我在编译时会出现错误
Error: This expression has type unit -> 'a Stack.t
but an expression was expected of type (string * string) Stack.t
对OCaml来说是个新手。有人可以指出我出错的地方吗?
答案 0 :(得分:8)
Stack.create
是一个函数,它取值()
(类型为unit
)并返回堆栈。
所以你应该这样做:
let (k : (string*string) Stack.t) = Stack.create ();;
如果你写Stack.create
,你只是谈论功能,而不是结果。