1)モジュールOCAML最初のクラスモジュール署名推論
module Int_Sig_1 =
struct
let x = 1
end
;;
2があると)、このモジュールの明示的な署名
module type INT_SIG =
sig
val x:int
end
;;
3)iは基づいて、第1のクラスのモジュールを作成します上記のモジュールとモジュールのタイプについて
let int_sig_1 = (module Int_Sig_1:INT_SIG)
4)ここでは、明示的な署名ではなく、同じ推論された署名UREは、本実世界OCAMLの第10章に書かれたよう
module Int_Sig_2 =
struct
let x =2
end
;;
上記
5)として、「モジュールタイプは、それが推測できる場合は、ファーストクラスのモジュールの構成の一部である必要はありません」、私はその後、私は上記と同じことをしよう)私は
Error: The signature for this packaged module couldn't be inferred.
6次のエラーを取得する
let a2 = (module Int_Sig_2);;
上記のモジュールを使用して第1、第2クラスモジュールを作成しようとするが、明示的なモジュールタイプと5、しかしth ファーストクラスのモジュールで、モジュールタイプがのものがリストの要素として作成されます。リストの先頭は上記の3の明示的な署名から作成されたファーストクラスのモジュールです。図5は、上記の私にエラーを与え、6が故障していない理由を
let int_sig= [int_sig_1;(module Int_Sig_2)];;
val int_sig : (module INT_SIG) list = [<module>; <module>] ;;
私の質問はありますか?
私はあなたにフォローアップの質問をしてもらえますか? –
もちろん、尋ねることはありません。 – octachron
特権いただきありがとうございます。 は= SIG 型T モジュール型MOD_SIG)iは 1を有する ヴァル分とします) モジュールMOD_UINT8を ヴァル最大 2分T –