{"height":"190","provider_url":"https://hatena.blog","description":"\u30de\u30b8\u30e1\u306a\u8a71\u306f\u7701\u7565\u3001\u4e3b\u306b\u81ea\u5206\u306e\u8a71\u3060\u3051\u30e1\u30e2\u98f2\u307f\u4f1a\u306f2\u65e5\u76ee\u3060\u3051\u53c2\u52a0\u3057\u307e\u3057\u305f\u3002 kinaba\u3055\u3093\u2192id:osiire \u3055\u3093\u3001 \u300c\u30ea\u30b9\u30c8\u306e\u91cd\u8907\u3092\u7701\u304f\u95a2\u6570(\u591a\u76f8\u7684)\u3092\u4f5c\u308b\u3068\u304d\u306b Set\u30e2\u30b8\u30e5\u30fc\u30eb\u304c\u4f7f\u3048\u306a\u3044\u300d OCaml \u306e Set \u30e2\u30b8\u30e5\u30fc\u30eb\u304c\u591a\u76f8\u7684\u306b\u4f7f\u3048\u306a\u3044\u554f\u984c\u3002 let uniq xs cmp = let module ASet = Set.Make ( struct type t = 'a (* 'a is unbound *) let compare = cmp end) in ASet.elements (List.fold_right ASet.add xs ASet.empty);; OCa\u2026","html":"<iframe src=\"https://hatenablog-parts.com/embed?url=https%3A%2F%2Fkeigoi.hatenadiary.org%2Fentry%2F20090311%2F1236776719\" title=\" PPL2009 \u306e\u307f\u304b\u3044\u306b\u3066 - keigoi\u306e\u65e5\u8a18\" class=\"embed-card embed-blogcard\" scrolling=\"no\" frameborder=\"0\" style=\"display: block; width: 100%; height: 190px; max-width: 500px; margin: 10px 0px;\"></iframe>","version":"1.0","categories":["Haskell","OCaml"],"blog_title":"keigoi\u306e\u65e5\u8a18","published":"2009-03-11 22:05:19","width":"100%","url":"https://keigoi.hatenadiary.org/entry/20090311/1236776719","author_url":"https://blog.hatena.ne.jp/keigoi/","author_name":"keigoi","type":"rich","blog_url":"https://keigoi.hatenadiary.org/","image_url":null,"provider_name":"Hatena Blog","title":" PPL2009 \u306e\u307f\u304b\u3044\u306b\u3066"}