19. GUI module hello import StdEnv, StdIO Start :: *World -> *World Start world = startIO NDI Void (snd o openDialog undef hello) [] world where hello = Dialog "" (TextControl "Hello world!" [])? ? ? ? ? ? ? ? ? [WindowClose (noLS closeProcess)]
20. 全称量化子 :: T2 b = C2 (b: b -> b) --?×? :: T2 b = C2 (A.b: b -> b) ? ? ? ? ? ?-- ? f2:: (T2 b) -> (Int,Char) f2 (C2 g) = (g 1, g 'a') たぶん Haskell と同じなので言うことは特にない…
21. 存在量化子 :: List = E.a: Cons a List | Nil newlist = Cons 1 Nil Hd :: List -> ? // 静的に型付けできない Hd (Cons x xs) = x // コンパイルエラーになる Tl :: List -> List //OK Tl (Cons x xs) = xs 取り出す方法がない 隠蔽された状態を表現可能
Hindley-Damas-Milner の ML と違って型推論できない事があるらしい。 ランク 2 の全称量化型( 3.7.4 参照)が使用される場合、プログラマによる明示的な型付けを必要とする Haslell は System F お
ムスカさん( 28 )特務機関
File にアスタリスクがついているのが一意型だという事 fwritec の様な破壊的更新を起こす関数に与える引数は一意型でないといけない File"argument 2 of fwritec" attribute at indicated position could not be coerced ^ File