[過去ログ] 関数型言語ML (SML, OCaml, etc.), Part 6 (949レス)
上下前次1-新
抽出解除 レス栞
このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
564(3): 2012/10/12(金)11:22 AAS
# type t = int * t;;
Error: The type abbreviation u is cyclic
# type t = { x: int; y: t };;
type t = { x : int; y : t; }
# type u = u option;;
Error: The type abbreviation u is cyclic
# type u = Some of u | None;;
type u = Some of u | None
だれか解説してくれ。
566: 2012/10/12(金)12:26 AAS
>>564
最初のやつは値を作れないし、三番目の型パラメータとして渡すようなのもoptionの中身次第では同じ事になるからじゃね?
と思ったが二番目が通るのがよくわからん。
567(1): 2012/10/12(金)17:55 AAS
>>564
(**** スマンがOCamlは久しく触っていないので、SMLで解説してみる -- 処理系は SML/NJ ****)
- type t = int * t;
Error: unbound type constructor: t
(* まだ束縛されていない型構成子 t を右辺の型式内で参照しているからエラー *)
- type t = { x: int, y: t};
Error: unbound type constructor: t
(* 最初の例と同様に、型構成子 t はまだ束縛されていないのでエラー *)
- type u = u option;
Error: unbound type constructor: u
省5
568(1): 2012/10/12(金)18:44 AAS
>>564
abbreviationではない新しい型がcyclicかどうかは仕様を決める人が自由に決める
一方、タプルとoptionがcyclicではないという仕様は既に決まっているので
タプルのabbreviationとoptionのabbreviationはcyclicではないはず
上下前次1-新書関写板覧索設栞歴
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 0.028s