宿題のへテロなリストです。こんなコードがスグに書けなくてスミマセン。 - オブジェクトの方がなるほどという感じです。showable (new integer 10) ってどう読めば? -- [[けいご]] &new{2006-12-01 (金) 13:46:37}; #comment (* by poly. variant *) type t = [ `Person of string | `Integer of int ] let show = function `Person p -> p | `Integer i -> string_of_int i let data = [ `Person "ogasawara"; `Integer 10 ] let _ = List.iter (fun t -> print_string (show t)) data let show' = function #t as t -> show t | `Float f -> string_of_float f let data = [ `Person "ogasawara"; `Integer 10; `Float 22.0 ] let _ = List.iter (fun t -> print_string (show' t)) data (* by object *) class person name = object val name : string = name method show = name end class integer i = object val value : int = i method get = value method show = string_of_int i end class type showable = object method show : string end let showable c = (c :> showable) let data = [ showable (new person "ogasawara"); showable (new integer 10) ] let _ = List.iter (fun o -> print_string o#show) data