トップ
新規
単語検索
ヘルプ
OCamlテクニック/let-poly
をテンプレートにして作成
開始行:
[[OCamlテクニック/let-poly]]
let多相には色々と種類があるので、ちと注意が必要です。
*値制限のlet多相 [#qf856368]
参照型と型安全を両立させるため、let多相を値に制限する方法。
TAPLでも紹介されています。値制限は、かなーり厳しい。
# let fst (x, _) = x;;
val fst : 'a * 'b -> 'a = <fun>
# let v = fst ([], ());;
val v : '_a list = []
#
''fst ([], ()) は値ではなく、関数適用なので、多相にはなら...
*OCamlのlet多相 [#cc879e11]
OCamlのlet多相には基本的に値制限が付いています。
ただし、型変数がcovariantな位置に現れる場合は、subtype関...
[[garrigue先生の論文:http://www.math.nagoya-u.ac.jp/~garr...
# let fst (x, _) = x;;
val fst : 'a * 'b -> 'a = <fun>
# let v = fst ([], ());;
val v : 'a list = []
#
covariantな位置というのは、(不正確ですが)関数の型を表す→...
つまり例えば、関数の戻り値に型変数があるなら、それはcovar...
正確には圏論的に言うと(以下略
*rank-1多相 [#o6360e2c]
大堀先生が考案され、SML# に実装されている方法です。
[[SML#のrank-1多相:http://www.pllab.riec.tohoku.ac.jp/sml...
-[注意]
Haskellのrank-n多相とかの話は、let多相の話ではなく、Unive...
- covariantというのは、サブタイプという「関係」について、...
- S<:Tのとき、T→U<:S→U、つまり→は左手についてサブタイプ関...
- つまり→は右手(戻り型)についてcovariant, 左手(引数)につ...
- サブタイプは配列・リストやi/o向き付けのチャネル型につい...
- covariant,contravariantの解説ありがとうございます。[[wi...
- おおおー。ありがとうございます。 -- [[けいご]] &new{200...
終了行:
[[OCamlテクニック/let-poly]]
let多相には色々と種類があるので、ちと注意が必要です。
*値制限のlet多相 [#qf856368]
参照型と型安全を両立させるため、let多相を値に制限する方法。
TAPLでも紹介されています。値制限は、かなーり厳しい。
# let fst (x, _) = x;;
val fst : 'a * 'b -> 'a = <fun>
# let v = fst ([], ());;
val v : '_a list = []
#
''fst ([], ()) は値ではなく、関数適用なので、多相にはなら...
*OCamlのlet多相 [#cc879e11]
OCamlのlet多相には基本的に値制限が付いています。
ただし、型変数がcovariantな位置に現れる場合は、subtype関...
[[garrigue先生の論文:http://www.math.nagoya-u.ac.jp/~garr...
# let fst (x, _) = x;;
val fst : 'a * 'b -> 'a = <fun>
# let v = fst ([], ());;
val v : 'a list = []
#
covariantな位置というのは、(不正確ですが)関数の型を表す→...
つまり例えば、関数の戻り値に型変数があるなら、それはcovar...
正確には圏論的に言うと(以下略
*rank-1多相 [#o6360e2c]
大堀先生が考案され、SML# に実装されている方法です。
[[SML#のrank-1多相:http://www.pllab.riec.tohoku.ac.jp/sml...
-[注意]
Haskellのrank-n多相とかの話は、let多相の話ではなく、Unive...
- covariantというのは、サブタイプという「関係」について、...
- S<:Tのとき、T→U<:S→U、つまり→は左手についてサブタイプ関...
- つまり→は右手(戻り型)についてcovariant, 左手(引数)につ...
- サブタイプは配列・リストやi/o向き付けのチャネル型につい...
- covariant,contravariantの解説ありがとうございます。[[wi...
- おおおー。ありがとうございます。 -- [[けいご]] &new{200...
ページ名: