2

次のコードを使用して、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 は初めてです。誰かが私が間違っているところを指摘できますか?

4

1 に答える 1

8

Stack.create()は、 (タイプの)値を受け取り、unitスタックを返す関数です。

したがって、次のことを行う必要があります。

let (k : (string*string) Stack.t) = Stack.create ();;

と書くStack.createと、結果ではなく関数について話すだけです。

于 2012-09-17T20:54:41.707 に答える